11
respostas

Problema ao abrir o jogo

Ao ir a pasta e colocar para rodar, e escolher um dos dois jogos o jogo da forca abre e fecha automaticamente, tentei colocar o time no codigo mas não sei onde devo colocar o time.sleep(). Se houver outra solução a não ser essa agradeço a ajuda.

11 respostas

Acho que é importante que você compartilhe o código para que alguém possa saber onde ajudar. Mas verifica se você está chamandos a função do jogo corretamente, pois sem chamar a função, nada acontece.

#esse e o codigo
import random


def jogar():
    imprime_mensagem_abertura()
    palavra_secreta = carrega_palavra_secreta()
    letras_acertadas = inicializa_letras_acertadas(palavra_secreta)
    print(letras_acertadas)


    acertou = False
    enforcou = False
    erros = 0

    while not acertou and not enforcou:
        chute = pede_chute()
        if chute in palavra_secreta:
            marca_chute_correto(chute, palavra_secreta, letras_acertadas)
        else:
            erros += 1
            desenha_forca(erros)
            print("Você errou faltam {} tentativas.".format(6 - erros))

        if erros == 7:
            imprime_mensagem_perdedor(palavra_secreta)
            print(f"A palavra secreta e: {palavra_secreta}")
            break

        if ("_" not in letras_acertadas):
            imprime_mensagem_vencedor(palavra_secreta)
            print(f"A palavra secreta e: {palavra_secreta}")
            break

        print(letras_acertadas)


def imprime_mensagem_abertura():
    print("########################################")
    print("######Bem vindo ao jogo da forca!!######")
    print("########################################")
    print("A dica da palavra é uma fruta.")


def pede_chute():
    chute = input("Qual a letra:")
    chute = chute.strip().upper()
    return chute


def marca_chute_correto(chute, palavra_secreta, letras_acertadas):
    if chute in palavra_secreta:
        index = 0
        for letra in palavra_secreta:
            if chute == letra:
                letras_acertadas[index] = letra
            index += 1


def carrega_palavra_secreta():
    arquivo = open("Arquivo.txt", "r", encoding="utf -8 ") # "Encoding="utf -8" é utilizado para reconhecimentos de strings com caracteres especiais. Ex: "ç"
    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):
    return ["_" for letra in palavra]


def imprimir_vencedor():
    print("Você ganhou!!")
    print("Game Over!!")

def imprime_mensagem_vencedor(palavra_secreta):
    print("Parabéns, você ganhou!")
    print("       ___________      ")
    print("      '._==_==_=_.'     ")
    print("      .-\\:      /-.    ")
    print("     | (|:.     |) |    ")
    print("      '-|:.     |-'     ")
    print("        \\::.    /      ")
    print("         '::. .'        ")
    print("           ) (          ")
    print("         _.' '._        ")
    print("        '-------'       ")

def imprime_mensagem_perdedor(palavra_secreta):
    print("Você foi enforcado!!")
    print("Game Over!!")
    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("     \_         _/         ")
    print("       \_______/           ")

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()

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

Testei seu código e está funcionando perfeitamente...

Coloca o código do arquivo principal, sem ser o do jogo da forca.

Esse abre normalmente, apos a escolha da forca ele abre rapidamente e fecha.

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()

Já esse quando escolhido abre normalmente, pois coloquei tempo para ele esperar.

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()

Muito estranho, pois rodei aqui e funcionou normal. Faz o seguinte: envia o teu projeto inteiro com os arquivos em um site tipo pastebin, e coloca aqui o link. Assim fica melhor de baixar o teu projeto e tentar te ajudar

Blz vou fazer

https://pastebin.com/sg5UCZT6

Ta na mão irmão, espero que de certo

Ta pedindo uma senha para acessar. Se não conseguir, me diz o teu e-mail que eu entro em contato

guiiberteli13@gmail.com