Olá. Meu jogo inicializa normalmente, porém após a adição de qualquer letra, o jogo termina com as mensagens de erro:
File "meu diretório", line 156, in jogar() File "meu diretório", line 19, in jogar if(chute in palavra_secreta): TypeError: 'in ' requires string as left operand, not NoneType
Segue o código:
import random
def jogar():
imprime_mensagem_de_abertura()
palavra_secreta = carrega_palavra_secreta()
letras_acertadas = ["_" for _ in palavra_secreta]
print(letras_acertadas)
enforcou = False
acertou = False
erros = 0
while(not enforcou and not acertou):
chute = palpite()
if(chute in palavra_secreta):
chutes_corretos(chute, letras_acertadas, palavra_secreta)
else:
erros = erros + 1
desenha_forca(erros)
if chute in letras_acertadas:
letras_faltando = letras_acertadas.count("_")
print("Ainda falta acertar {} letras".format(letras_faltando))
enforcou = erros == 6
acertou = "_" not in letras_acertadas
print(letras_acertadas)
if (acertou):
mensagem_vitoria()
else:
mensagem_derrota(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_de_abertura():
print("**********************************")
print("Bem vindo ao jodo de FORCA")
print("**********************************")
def carrega_palavra_secreta():
arquivo = open("lista_de_palavras.txt", "r", encoding="UTF-8")
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
def palpite():
chute = input("Qual letra?")
chute = chute.strip().upper()
def chutes_corretos(chute, letras_acertadas, palavra_secreta):
index = 0
for letra in palavra_secreta:
if (chute == letra):
letras_acertadas[index] = letra
index = index + 1
def mensagem_vitoria():
print("Parabéns, você ganhou!")
print(" ___________ ")
print(" '._==_==_=_.' ")
print(" .-\\: /-. ")
print(" | (|:. |) | ")
print(" '-|:. |-' ")
print(" \\::. / ")
print(" '::. .' ")
print(" ) ( ")
print(" _.' '._ ")
print(" '-------' ")
def mensagem_derrota(palavra_secreta):
print("Puxa, você foi enforcado!")
print("A palavra era {}".format(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(" \_______/ ")
if(__name__ == "__main__"):
jogar()