Desejo incluir uma função que marca as letras já digitadas pelo usuário,a fim de não ocorrer a digitalização da mesma novamente,visto que não é contabilizado se o usuário digitar a mesma letra errada duas vezes.Segue o código:
import random
def jogar():
imprimir_mensagem_inicial()
palavra_secreta = carrega_palavra_secreta()
letras_acertadas = ['_' for letra in palavra_secreta]
enforcou = False
acertou = False
letras_erradas = 0
while(not enforcou and not acertou):
chute = input('Digite uma 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:
letras_erradas += 1
print(f'VOCÊ ERROU!FALTAM {7-letras_erradas} TENTATIVAS')
desenha_forca(letras_erradas)
enforcou = letras_erradas == 7
acertou = '_' not in letras_acertadas
print(letras_acertadas)
if(acertou):
imprime_mensagem_vencedor()
elif(enforcou):
imprime_mensagem_perdedor(palavra_secreta)
print('FIM DE JOGO')
jogar_novamente()
def imprimir_mensagem_inicial():
print('*************************')
print('Bem vindo ao jogo de Forca!')
print('*************************')
def carrega_palavra_secreta():
arquivo = open('palavras_secretas.txt', 'r')
palavras = []
for linha in arquivo:
linha = linha.strip()
palavras.append(linha)
arquivo.close()
numero = random.randrange(0, len(palavras))
palavra_secreta = palavras[numero].upper()
print(palavras)
print(palavra_secreta)
return palavra_secreta
def desenha_forca(letras_erradas):
print(" _______ ")
print(" |/ | ")
if(letras_erradas == 1):
print(" | (_) ")
print(" | ")
print(" | ")
print(" | ")
if(letras_erradas == 2):
print(" | (_) ")
print(" | \ ")
print(" | ")
print(" | ")
if(letras_erradas == 3):
print(" | (_) ")
print(" | \| ")
print(" | ")
print(" | ")
if(letras_erradas == 4):
print(" | (_) ")
print(" | \|/ ")
print(" | ")
print(" | ")
if(letras_erradas == 5):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | ")
if(letras_erradas == 6):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | / ")
if (letras_erradas == 7):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | / \ ")
print(" | ")
print("_|___ ")
print()
def imprime_mensagem_vencedor():
print("Parabéns, você ganhou!")
print(" ___________ ")
print(" '._==_==_=_.' ")
print(" .-\\: /-. ")
print(" | (|:. |) | ")
print(" '-|:. |-' ")
print(" \\::. / ")
print(" '::. .' ")
print(" ) ( ")
print(" _.' '._ ")
print(" '-------' ")
def imprime_mensagem_perdedor(palavra_secreta):
print("Puxa, você foi enforcado!")
print(f"A palavra era {palavra_secreta}")
print(" _______________ ")
print(" / \ ")
print(" / \ ")
print("// \/\ ")
print("\| XXXX XXXX | / ")
print(" | XXXX XXXX |/ ")
print(" | XXX XXX | ")
print(" | | ")
print(" \__ XXX __/ ")
print(" |\ XXX /| ")
print(" | | | | ")
print(" | I I I I I I I | ")
print(" | I I I I I I | ")
print(" \_ _/ ")
print(" \_ _/ ")
print(" \_______/ ")
def jogar_novamente():
print('Para jogar novamente,digite 1 ')
print('Para sair,digite 2 ')
jogar_novamente = int(input('Digite a opção desejada: '))
if jogar_novamente == 1:
jogar()
else:
stop
if __name__ == '__main__':
jogar()