Olá pessoal. Tudo bom?
Estou tentando fazer uma saída alternativa do jogo da forca. Porém estou com dificuldades em umas das minhas propostas
O meu jogo irá terminar de duas formas :
- O usuário tem x chances para acertar (x = numero de letras da palavra) --> perde
- Usuário acerta a palavra (lista de palavras acertadas = lista da palavra secreta) ---> ganha
estou com dificuldade na segunda saída. Ainda me perco muito com variáveis booleanas. No jeito do vídeo está claro a lógica mas não deveria dar erro dessa forma tambem. O código esta muito perto do codigo dos videos
Desde já muito obrigado!
import random
def jogar_forca():
print('Jogo da Forca')
##leitura do arquivo com palavras
arquivo = open('palavras.txt', 'r')
palavras = []
for linha in arquivo:
linha = linha.strip()
palavras.append(linha)
arquivo.close()
##escolha da palavra aleatória
numero = random.randrange(0, len(palavras))
palavra_secreta = palavras[numero]
letras_acertadas = []
letras_erradas = []
for i in range(0, len(palavra_secreta)):
letras_acertadas.append('_')
##algumas considerações
enforcou = False
acertou = False
erros = 0
tentativas = len(palavra_secreta)
while (not enforcou and not acertou):
print(f'Sua palavra tem {len(palavra_secreta)} letras, `{letras_acertadas}.'
f'Suas letras erradas {letras_erradas}')
chute = input('Diga uma letra: ').upper().strip()
##parte que suponho esta o erro
if chute in palavra_secreta.upper():
index = 0
for letra in palavra_secreta.upper():
if chute == letra:
print(f'Encontrou a letra {chute} na posição {index+1}')
letras_acertadas[index] = letra
###acredto que o erro esteja aqui
acertou = list(palavra_secreta) == letras_acertadas
if acertou == True:
print(f'Você acertou a palavra {letras_acertadas},'
f' E suas letras erradas foram {letras_erradas}')
index = index + 1
else:
erros = erros + 1
letras_erradas.append(chute)
print(f'Você errou! Sua palavra é {letras_acertadas}, E suas letras erradas foram {letras_erradas}')
enforcou = erros == len(palavra_secreta)
print(f'Você errou, agora tem somente {tentativas-erros} tentativas')
print('FIM do JOGO')
if (__name__ == '__main__'):
jogar_forca()