1
resposta

Mãos na massa: encerrando o jogo

Adicionei a função enumerate para poder já possuir o index sem ter grandes problemas e deixar o código menor e mais legível

def jogar():

    print("*********************************")
    print("Bem vindo ao jogo de forca!")
    print("*********************************")

    palavra_secreta = "abacaxi"
    letras_acertadas = ["_" for _ in palavra_secreta]
    letras_chutadas = []
    tentativas = 6
    erros = 0

    enforcou = False
    acertou = False

    # enquanto não enforcou e não acertou
    while not enforcou and not acertou:

        chute = input("Qual letra? ")
        chute = chute.strip().lower()
        chute_certo = False

        if (len(chute) != 1) or (not chute.isalpha()):
            print("Chute inválido, apenas letras")
            continue
        elif chute in letras_chutadas:
            print("Você já testou essa letra!")
            continue
        else:
            letras_chutadas.append(chute)

        for i, letra in enumerate(palavra_secreta):
            if chute == letra:
                letras_acertadas[i] = letra
                chute_certo = True

        if not chute_certo:
            erros += 1

        print(*letras_acertadas)
        print(f"Faltam {tentativas - erros} tentativas!")

        acertou = "_" not in letras_acertadas
        enforcou = erros == tentativas

    if enforcou:
        print(f"Fim do jogo. A palavra era {palavra_secreta}.")
    elif acertou:
        print(f"Parabens por adivinhar a palavra {palavra_secreta}!")


if __name__ == '__main__':
    jogar()
1 resposta

Olá, Henrique.

Tudo bem?

Pelo código que você compartilhou, parece que você está implementando um jogo de forca em Python. É uma ótima ideia utilizar a função enumerate para obter o índice e o valor de cada letra na palavra secreta. Isso torna o código mais legível e evita problemas com índices fora do intervalo.

Parabéns e continue assim praticando e evoluindo.

Espero ter ajudado. Bons estudos.