import random
def jogar():
imprime_mensagem_abertura()
palavra_secreta = traz_palavra_secreta()
letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
enforcou = False
acertou = False
tentativas = 0
print(f"Adivinhe a palavra secreta: {letras_acertadas}")
while not enforcou and not acertou:
chute = pede_chute()
if chute in palavra_secreta:
marca_chute_correto(palavra_secreta, chute, letras_acertadas)
else:
tentativas += 1
desenha_forca(tentativas)
print(f"Você ERROU!!! Ainda há {7-tentativas} tentativas.")
enforcou = tentativas == 7
print(letras_acertadas)
if "_" not in letras_acertadas:
acertou = True
if acertou:
imprime_mensagem_vencedor()
else:
imprime_mensagem_perdedor(palavra_secreta)
print("Fim de jogo!!!")
# Funções Utilizadas:
def imprime_mensagem_abertura():
print("*********************************\n"
"Bem-vindo ao jogo de adivinhação!\n"
"*********************************\n")
def traz_palavra_secreta():
with open("palavras.txt", "r", encoding="UTF-8") as arquivo: # Para não ter que usar o close(), é só usa o with
palavras = []
for linha in arquivo:
linha = linha.strip()
palavras.append(linha)
numero = random.randrange(0, len(palavras))
palavra_secreta = palavras[numero].upper()
return palavra_secreta
def inicializa_letras_acertadas(palavra):
return ["_" for letra in palavra] # fazer um for dentro de uma lista
def pede_chute():
return str.upper(str.strip(input("Chute uma letra:")))
def marca_chute_correto(palavra, chute, letras_acertadas):
index = 0
for letra in palavra:
if chute == letra:
letras_acertadas[index] = letra
print(f"Encontrei a letra {chute} na posição {index}.")
index = index + 1
def imprime_mensagem_perdedor(palavra_secreta):
print("Puxa, você foi enforcado!")
print(f"A palavra era {palavra_secreta}\n"
" _______________ \n"
" / \ \n"
" / \ \n"
"// \/\ \n"
"\| XXXX XXXX | / \n"
" | XXXX XXXX |/ \n"
" | XXX XXX | \n"
" | | \n"
" \__ XXX __/ \n"
" |\ XXX /| \n"
" | | | | \n"
" | I I I I I I I | \n"
" | I I I I I I | \n"
" \_ _/ \n"
" \_ _/ \n"
" \_______/ \n")
def imprime_mensagem_vencedor():
print(f"Parabéns, você ganhou!\n"
" ___________ \n"
" '._==_==_=_.' \n"
" .-\\: /-. \n"
" | (|:. |) | \n"
" '-|:. |-' \n"
" \\::. / \n"
" '::. .' \n"
" ) ( \n"
" _.' '._ \n"
" '-------' \n")
def desenha_forca(erros):
print(" _______ ")
print(" |/ | ")
if(erros == 1):
print(" | (_) ")
print(" | ")
print(" | ")
print(" | ")
if(erros == 2):
print(" | (_) ")
print(" | \ ")
print(" | ")
print(" | ")
if(erros == 3):
print(" | (_) ")
print(" | \| ")
print(" | ")
print(" | ")
if(erros == 4):
print(" | (_) ")
print(" | \|/ ")
print(" | ")
print(" | ")
if(erros == 5):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | ")
if(erros == 6):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | / ")
if (erros == 7):
print(" | (_) ")
print(" | \|/ ")
print(" | | ")
print(" | / \ ")
print(" | ")
print("_|___ ")
print()
if __name__ == "__main__":
jogar()