Não sei o que está acontecendo, mas aleatoriamente quando inicio o programa os tracinhos não aparecem, somente os colchetes. E aí quando se digita qualquer letra vai direto para o você acertou. Está acontecendo quando acerto a palavra. A próxima janela já vem sem traços, somente colchetes.
A janela está assim:
C:\Users\Fábio\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\Fábio\PycharmProjects\pythonProject\games\Forca.py
*********************************
***Bem vindo ao jogo da Forca!***
*********************************
[]
QUAL LETRA?
Digito qq letra e vai direto para o você acertou. E quando carrego novamente fica normal, como abaixo:
C:\Users\Fábio\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\Fábio\PycharmProjects\pythonProject\games\Forca.py
*********************************
***Bem vindo ao jogo da Forca!***
*********************************
['_', '_', '_', '_', '_']
QUAL LETRA?
O código está assim:
import random
def jogar():
imprime_mensagem_de_abertura()
palavra_secreta = carrega_palavra_secreta()
letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
print(letras_acertadas)
enforcou = False
acertou = False
erros = 0
while(not enforcou and not acertou):
chute = pede_chute()
if(chute in palavra_secreta):
marca_chute_posicao_correta(chute,letras_acertadas,palavra_secreta)
else:
erros += 1
desenha_forca(erros)
enforcou = erros == 7
acertou = "_" not in letras_acertadas
print(letras_acertadas)
print("Restam ", 6 - erros , "Tentativas")
if(acertou):
imprime_mensagem_ao_vencedor()
else:
imprime_mensagem_ao_perdedor(palavra_secreta)
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()
def imprime_mensagem_ao_perdedor(palavra_secreta):
print("Puxa, você foi enforcado!")
print("A palavra era {}".format(palavra_secreta))
print(" _______________ ")
print(" / \ ")
print(" / \ ")
print(" \_ _/ ")
print(" \_______/ ")
def imprime_mensagem_ao_vencedor():
print("Parabéns, você ganhou!")
print(" ___________ ")
print(" '._==_==_=_.' ")
print(" '-------' ")
print("VOCÊ GANHOU! AÊÊêÊ!!!!")
def marca_chute_posicao_correta(chute,letras_acertadas,palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute == letra):
letras_acertadas[index] = letra
index += 1
def pede_chute():
chute = input("QUAL LETRA?")
chute = chute.strip().upper()
return chute
def inicializa_letras_acertadas(palavra):
return ["_" for letra in palavra]
def imprime_mensagem_de_abertura():
print("*********************************")
print("***Bem vindo ao jogo da Forca!***")
print("*********************************")
def carrega_palavra_secreta():
arquivo = open("palavras.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()
return palavra_secreta
if(__name__ == "__main__"):
jogar()
Cortei parte das imagens pq não cabia. Só deixei os espaços.
Obrigado