Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

8 tentativas ao invés de 6 tentativas

Olá, pessoal!

Fui construindo o código junto com o vídeo. No entanto, quando tento fazer um teste utilizando seis letras erradas (não presentes na palavra secreta) para verificar se realmente são apenas 6 tentativas eu consigo realizar 8 tentativas. O código está dessa forma:

print('*' * 30)
print('Bem vindo ao jogo de forca!')
print('*' * 30)

palavra_secreta = 'banana'.upper()
letras_acertadas = ["_", "_", "_", "_", "_", "_"]

enforcou = False
acertou = False
tentativas = 0

print(letras_acertadas)

#enquanto True and True
while not enforcou and not acertou:

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

    if chute in palavra_secreta:
        index = 0  #posiçao da letra
        for letra in palavra_secreta:
            if chute == letra:
                # se o jogador acertou a letra será guardada naquela posição
                letras_acertadas[index] = letra
            index += 1
    else:
        tentativas += 1

    enforcou = tentativas == 6
    acertou = "_" not in letras_acertadas
    print(letras_acertadas)

if acertou:
   print('Você ganhou!')
else:
    print('Você perdeu!')

print('Fim do jogo')

Porém, quando mudo essa linha do código:

enforcou = tentativas == 6

para

enforcou = tentativas == 4

passo a ter apenas as 6 tentativas como foi estipulado. Não consigo enteder porque continuo com essas 2 tentativas a mais quando utilizo " enforcou = tentativas == 6" para ter as 6 tentativas . O que poderia ser?

2 respostas
solução!

Uma pergunta antes de responder é que, na hora de acertar você acertou quantas?

Agora já não lembro, mas ao fazer o teste novamente com a sua pergunta em mente entendi qual era a lógica de aparentemente ter tido mais tentativas! Ao acertar uma letra, eu continuo com as 6 tentativas restantes. Ou seja, os acertos que fiz não irão afetar a minha quantidade de tentativas restantes - desde que não tenha acertado a palavra toda ainda. Certo?

Muito obrigada pelo comentário, Samuel! :-)