Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

problema na funcao palavra secreta

meu codigo está exato ao video e fica aprecendo que a função em relação a palavra secreta está com algum erro

meu cogido está assim:

import random

import random

def jogar():

    imprime_mensagem_abertura()
    palavra_secreta = carrega_palavra_secreta()
    letras_acertadas = inicializa_letras_acertadas(palavra_secreta)


    enforcou = False
    acertou = False
    erros = 0

    print(letras_acertadas)

    while(not enforcou and not acertou):

        chute = input("Qual Letra?")
        chute = chute.strip().upper()

        if(chute in palavra_secreta):
            index = 0
            for letra in palavra_secreta:
                if(chute.upper() == letra):
                    letras_acertadas[index] = letra
                index = index + 1

        else:
            erros = erros + 1

        enforcou = erros == 6
        acertou = "_" not in letras_acertadas
        print(letras_acertadas)
    if(acertou):
        print("Parabens você ganhou!")
    else:
        print("Que pena você errou!")
    print("Fim de Jogo!")

def imprime_mensagem_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():
    return ["_" for letra in palavra_secreta]

if(__name__ == "__main__"):
    jogar()

o erro que aparece é esse:

Traceback (most recent call last): File "C:\Users\jeanf\Caio\PycharmProjects\forca.py", line 64, in jogar() File "C:\Users\jeanf\Caio\PycharmProjects\forca.py", line 7, in jogar letras_acertadas = inicializa_letras_acertadas(palavra_secreta) TypeError: inicializa_letras_acertadas() takes 0 positional arguments but 1 was given

3 respostas

Você teria o arquivo "palavras.txt" na mesma pasta do código python?

solução!
import random

def jogar():

    imprime_mensagem_abertura()
    palavra_secreta = carrega_palavra_secreta()
    letras_acertadas = inicializa_letras_acertadas(palavra_secreta)


    enforcou = False
    acertou = False
    erros = 0

    print(letras_acertadas)

    while(not enforcou and not acertou):

        chute = input("Qual Letra?")
        chute = chute.strip().upper()

        if(chute in palavra_secreta):
            index = 0
            for letra in palavra_secreta:
                if(chute.upper() == letra):
                    letras_acertadas[index] = letra
                index = index + 1

        else:
            erros = erros + 1

        enforcou = erros == 6
        acertou = "_" not in letras_acertadas
        print(letras_acertadas)
    if(acertou):
        print("Parabens você ganhou!")
    else:
        print("Que pena você errou!")
    print("Fim de Jogo!")

def imprime_mensagem_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(palavra_secreta):
    return ["_" for letra in palavra_secreta]

if(__name__ == "__main__"):
    jogar()

O seu erro foi não chamar a palavra_secreta como argumento na função inicializa_letras_acertadas() pois para poder chamer ela nessa função precisava dela como argumento pelo fato dessa variável não existir dentro dessa função, consertei o código acima, espero ter ajudado! :)

ata, nossa vlw mesmo