1
resposta

Mãos na massa

def jogar(): print("*") print("Bem vindo ao jogo da Forca!") print("*")

enforcou = False
acertou = False
erros = 0

palavra_secreta = "banana".upper()

print(palavra_secreta)
print(palavra_secreta.capitalize())

letras_acertadas = ["_" for letra in palavra_secreta]

enforcou = False
acertou = False
#enquanto não enforcou e não acertou
#print(letras_acertadas)

while (not acertou and not enforcou):

    chute = input("Qual letra? ")
    chute = chute.strip()
    chute = chute.upper()

    if (chute in palavra_secreta):
        index = 0
        for letra in palavra_secreta:
            if (chute.upper() == letra.upper()):
                letras_acertadas[index] = letra
            index += 1
    else:
        erros += 1
        chances= len(palavra_secreta) - erros
        if chances > 1:
            print(f'Chances: {chances}')
        else:
            print(f'Chance: {chances}')

    enforcou = erros == len(palavra_secreta)
    acertou = "_" not in letras_acertadas

#solucão alternativa para uso do break print(letras_acertadas) if enforcou: print ('Você perdeu! Quantidade máxima de tentativas alcançada') break elif "" not in letrasacertadas: print ('Você ganhou! Parabéns') break

print()

if (acertou):
    print("Você ganhou!")
else:
    print("Você perdeu!")
    print (f'A palavra era: {palavra_secreta}')

if (name == "main"): jogar() print("Fim do jogo")

1 resposta

Não entendi a sua dúvida, mas poço te dar uma dica aqui. Na hora de fazer o input, já coloque os tratamentos de uma vez. Exemplo: chute = input("Qual letra? ").upper().strip()[0] Obs: o [0] serve pra pegar somente a primeira letra e, assim evitando algum erro na digitação, como por exemplo: Um usuário coloque duas letras em vez de uma sem querer. Com o [0] isso não seria uma problema.