Olá Emerson,
o Python3 identifica o que pertence ao grupo do else
pelo nível de indentação. Deste modo, você está dizendo que se o chute não está na palavra secreta, então deve ser executado esse bloco:
erros += 1
tentativas -= 1
enforcou = erros == tentativas
acertou = "_" not in letras_acertadas
print(letras_acertadas)
print(f"vocë já errou {erros} vezes")
Mas veja que as únicas linhas que devem ser executadas caso o chute tenha sido errado são as duas primeiras, que aumenta o número de erros e diminui as tentativas restantes. Ou seja, as 4 últimas linhas do que eu colei acima devem ter um recuo no nível de indentação, para acontecer independente do if/else
.
Além disso, veja que você imprime o estado atual da forca independente da pessoa acertar ou não. Isso significa que a linha de código que faz isso deve estar fora do if/else
, e não presente nos dois.
Outro erro no código: você diz que enforcou se o número de tentativas é igual ao número de erros. Mas o número de tentativas diminui a cada rodada. Você deveria comparar com o tamanho da palavra, que nunca muda.
O código final ficaria assim:
def jogar():
print("*********************")
print("****jogo da forca****")
print("*********************")
palavra_secreta = "banana".upper()
letras_acertadas = ["_" for letra in palavra_secreta]
print(f"A palavra tem {len(palavra_secreta)} Letras")
print(letras_acertadas)
enforcou = False
acertou = False
erros = 0
tentativas = len(palavra_secreta)
while (not acertou and not enforcou):
print(f"você tem direito à {tentativas} tentativas")
chute = input("Qual a sua sugestão de letra ? ")
chute = chute.strip().upper()
if (chute in palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute == letra):
letras_acertadas[index] = letra
index += 1
else:
erros += 1
tentativas -= 1
enforcou = erros == len(palavra_secreta)
acertou = "_" not in letras_acertadas
print(letras_acertadas)
print(f"vocë já errou {erros} vezes")
if acertou:
print("você ganhou")
else:
print("você perdeu")
print("Fim do Jogo!!!")
if (__name__ == "__main__"):
jogar()