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

Problemas ao rodar o jogo Forca

Minha duvida e que após rodar na pasta jogos o jogo da forca aparece esse erro:

#C:\Users\Studio\anaconda3\python.exe C:/Users/Studio/Desktop/PycharmProjects/Jogos/Jogos.py

##############Escolha seu jogo!!############# (1) Adivinhação (2) Forca Qual jogo?2 Jogo da Forca Traceback (most recent call last): File "C:/Users/Studio/Desktop/PycharmProjects/Jogos/Jogos.py", line 15, in jogar() NameError: name 'jogar' is not defined

########################################

######Bem vindo ao jogo da forca!!######

########################################

Ele roda, mas aparece essa mensagem, e porque o codigo não esta completo, e por isso não tem funcionalidade para o jogar?

import Forca
import Adivinhação

print("##############Escolha seu jogo!!#############")
print("(1) Adivinhação (2) Forca")
jogo = int(input("Qual jogo?"))

if (jogo == 1):
    print("Jogo de Adivinhação ")
    Adivinhação.jogar()
elif (jogo == 2):
    print("Jogo da Forca")
    Forca.jogar()
if (__name__ == "__main__"):
     jogar()
7 respostas

NameError: name 'jogar' is not defined

Está dizendo que o problema é na função "jogar()"

Da uma olhada se ela ta definida nos arquivos de Forca ou Adivinhacao. Se estiverem, traga aqui o código para a gente olhar e tentar ver onde está o erro. Mas é referente a essa função.

#esse e do arquivo Adivinhação

import random
def jogar():

    print("Bem vindo ao jogo de adivinhação")
    numero_secreto = random.randrange(1, 101)


    print("Qual o nivel de dificuldade?")
    print("(1) Easy (2) Normal (3) Hard")
    pontos = 1000
    total_de_tentativas = 0
    nivel = int(input("Qual nível você escolhe:"))

    if nivel == 1:
        total_de_tentativas = 15
    elif nivel == 2:
        total_de_tentativas = 10
    else:
        total_de_tentativas = 5

    print("O número vai de 1 a 100")
    rodada = 1
    errou = rodada == total_de_tentativas

    for rodada in range(1, total_de_tentativas + 1):
        print("Tentativas {} de {}".format(rodada, total_de_tentativas))
        chute = input("Digite seu nùmero: ")
        print("Você digitou:", chute)
        chute = int(chute)
        if chute < 1 or chute > 100:
            print("Você deve digitar um número de 1 a 100")
            continue

        acertou = chute == numero_secreto
        type(acertou)
        maior = chute > numero_secreto
        menor = chute < numero_secreto

        if acertou:
            print("Você acertou. Você fez {} pontos!".format(pontos))
            print("Great Game")
            print("Game Over!!")
            break
        else:
            if maior:
                print("Você errou! Seu número foi maior do que a resposta.")
            elif menor:
                print("Você errou! Seu número e menor do que a resposta.")

                pontos_perdidos = abs(numero_secreto - chute)
                pontos = pontos - pontos_perdidos
    else:
        if not errou:
            print("O número secreto era {}.Você fez {} pontos!".format(numero_secreto, pontos))
            print("Game Over!!")

    time.sleep(5)
if (__name__ == "__main__"):
    jogar()

Esse e do forca

def jogar():

    print("########################################")
    print("######Bem vindo ao jogo da forca!!######")
    print("########################################")

    print("Game Over!!")

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

E esse e da pasta que coloca os dois juntos

só que ao rodar sozinho o "forca" ele não da esse erro, apenas quando tento rodar ele na pasta "jogos"

mport Forca
import Adivinhação

print("##############Escolha seu jogo!!#############")
print("(1) Adivinhação (2) Forca")
jogo = int(input("Qual jogo?"))

if (jogo == 1):
    print("Jogo de Adivinhação ")
    Adivinhação.jogar()
elif (jogo == 2):
    print("Jogo da Forca")
    Forca.jogar()
if (__name__ == "__main__"):
     jogar()
solução!

Cara, tenta tirar esse código aqui:

if (name == "main"): jogar()

Da pasta onde estão os dois unidos, vê se funciona. Acho que como ele já está nos outros, talvez não seja necessário nesse terceiro também.

Funcionou cara, vlw demais, o problema era o código no arquivo jogos, ele fazia com que o da forca entra-se em erro

Funcionou cara, vlw demais, o problema era o código no arquivo jogos, ele fazia com que o da forca entra-se em erro