2
respostas

Erro na leitura da palavras , palavras.txt

Nao consigo saber o que arrumar

import random

def jogar():
     imprime_mesagem_abertura()

     palavra_secreta = carrega_palavra_secreta()
     letras_acertadas = inicializa_letras_acertadas()


     enforcou = False
     acertou = False
     erros = 0
     print(letras_acertadas)

     while (not acertou and not enforcou):


          chute = input("Qual letra ?")
          chute: str = chute.strip()

          if (chute in palavra_secreta ):
               index = 0
               for letra in palavra_secreta :
                    if (chute == letra):
                         letras_acertadas[index] = letra
                    index = index + 1
          else :
               erros += 1
          enforcou = erros == 6
          acertou = "_" not in letras_acertadas
          print(letras_acertadas)

     if (acertou):
          print("Você ganhou!!")
     else:
          print("Você perdeu!!")
     print("fim de jogo")



def imprime_mesagem_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

def inicializa_letras_acertadas(palavras):
     return ["_" for letra in palavras]

if (__name__ == "__main__"): 

File "C:/Users/Proprietario/PycharmProjects/pythonProject/forca.py", line 8, in jogar
    letras_acertadas = inicializa_letras_acertadas()
TypeError: inicializa_letras_acertadas() missing 1 required positional argument: 'palavras'
2 respostas

Fala Andrei, beleza?

Bem simples, aqui nessa parte do código faltou você preencher o parenteses como a função original com palavras:

 palavra_secreta = carrega_palavra_secreta()
     letras_acertadas = inicializa_letras_acertadas(palavras)

Esse é o erro que ele está acusando. Testa lá para ver se funciona.

testei mais ainda da erro

C:\Users\Proprietario\PycharmProjects\pythonProject\venv\Scripts\python.exe C:/Users/Proprietario/PycharmProjects/pythonProject/forca.py
Traceback (most recent call last):
  File "C:/Users/Proprietario/PycharmProjects/pythonProject/forca.py", line 66, in <module>
    jogar()
  File "C:/Users/Proprietario/PycharmProjects/pythonProject/forca.py", line 8, in jogar
    letras_acertadas = inicializa_letras_acertadas(palavras)
NameError: name 'palavras' is not defined
*********************************
***Bem vindo ao jogo da Forca!***
*********************************

Process finished with exit code 1