Segue abaixo a forma como solucionei o desafio proposto pelo instrutor de exibir uma mensagem indicando quantas tentativas restam para o usuário antes do mesmo "se enforcar". Declarei outras duas variáveis chamadas de "tentativas" e "tentativas_restantes", inicializadas com valor igual a 6 e "tentativas", respectivamente. Dentro do "for", caso o usuário dê um chute válido, é impressa uma mensagem na tela apenas mostrando "tentativas_restantes" atuais (caso ele acerte na primeira, continuará com o número de tentativas totais declarado em "tentativas"). Caso o chute não seja de uma letra contida na palavra secreta, é feito o cálculo: tentativas_restantes = tentativas - erros. Então, é impressa uma mensagem na tela informando novamente o valor de "tentativas_restantes", onde agora já foi descontado o primeiro erro. Segue código abaixo para maiores detalhes.
# Saudação:
print("\n")
print("***********************************")
print("****Bem vindo ao jogo da Forca!****")
print("***********************************")
# Declaração de variáveis
palavra_secreta = "banana".upper()
letras_acertadas = ["_", "_", "_", "_", "_", "_"]
enforcou = False
acertou = False
erros = 0
tentativas = 6
tentativas_restantes = tentativas
# Apresenta para o usuário o layout da palavra secreta
print(f"\nA palavra secreta é: {letras_acertadas}")
# Código do progrema:
while(not enforcou and not acertou):
# Pede um chute para o usuário:
chute = input("\nChute uma letra: ")
chute = chute.strip().upper() # Retira os espaços inseridos pelo usuário na entrada de texto antes de comparar
# Verifica se a letra chutada existe na palavra secreta e caso exista executa o código abaixo:
if(chute in palavra_secreta):
posicao = 0
for letra in palavra_secreta:
if(chute == letra):
letras_acertadas[posicao] = letra
posicao += 1
print(f"\nA letra existe na palavra! Você ainda tem {tentativas_restantes} tentativas.")
print("\n")
print(letras_acertadas)
# Caso o chute não exista na palavra secreta, executa:
else:
erros += 1
tentativas_restantes = tentativas - erros
print(f"\nA letra não existe na palavra. Restam {tentativas_restantes} tentativas.")
# Declara as condições para "enforcou" e "acertou" serem true:
enforcou = erros == tentativas
acertou = "_" not in letras_acertadas
# Realiza verificação se o usuário já se enforcou ou se ele já acertou a palavra secreta:
if (acertou):
print("\nParabéns, você acertou a palavra secreta!")
if(enforcou):
print("\nVocê se enforcou!")
# Saudação de encerramento
print("\nFIM DO JOGO")