Olá, tudo bem? O meu código deu um erro estranho e não estou conseguindo resolver. Ao dar run, ele aponta os seguintes erros:
Traceback (most recent call last):
File "C:\Users\PEDRO.HECK\PycharmProjects\jogos\forca.py", line 69, in <module>
jogar()
File "C:\Users\PEDRO.HECK\PycharmProjects\jogos\forca.py", line 25, in jogar
for i in palavra_secreta:
TypeError: 'builtin_function_or_method' object is not iterable
O meu código completo segue abaixo:
import random
def jogar():
print(35 * "-")
print("Bem-vindo(a) ao Jogo de Forca!")
print(35 * "-")
arquivo = open("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
# letras_acertadas = ["-" for letra in palavra_secreta]
letras_acertadas = []
for i in palavra_secreta:
if i == " ":
letras_acertadas.append(" ")
elif i == "-":
letras_acertadas.append("-")
else:
letras_acertadas.append("_")
enforcou = False
acertou = False
erros = 0
for i in letras_acertadas:
print(i, " ", end='')
# o jogo se mantém enquanto não enforcou nem acertou
while not enforcou and not acertou:
chute = input("\n\nChute uma letra: ")
chute = chute.strip().upper() # .strip() é pra tirar quaisquer espaços que podem estar no imput (ex.: " b")
if chute in palavra_secreta:
index = 0
for letra in palavra_secreta:
if chute.upper() == letra.upper():
letras_acertadas[index] = letra
index += 1
else:
erros += 1
print("Errou! Você tem {} tentativas\n".format(6 - erros))
enforcou = erros == 6 # enforcou se torna True caso erros se iguale a 6
acertou = "_" not in letras_acertadas
# imprimindo as letras acertadas
for i in letras_acertadas:
print(i, " ", end='')
if acertou:
print("\nParabéns, você ganhou!")
else:
print("\nVocê foi enforcado!")
if __name__ == "__main__":
jogar()
Reparem que na linha 24 o meu código está diferente do do professor pois quis que mostrasse outros caracteres no console além de "_" caso a palavra contenha hífen ou seja composta por mais de uma palavra (portanto contendo espaço). Este pedaço do código estava funcionando antes desta aula que ensina a usar o arquivo "palavras.txt", então não creio que este seja o problema.
Alguém saberia me ajudar neste problema?
Desde já agradeço