1
resposta

[Bug] Quando o usuário acerta o número secreto, o programa fecha.

Testei o script no python e notei que acontece algo estranho: O programa fecha repentinamente quando o usuário acerta o número secreto, ao invés de aparecer a mensagem que ele acertou. No PyCharm isso não acontece. Vi que outros colegas tiveram o mesmo problema, mas não achei uma solução ou explicação para o problema.

#JOGO DA ADIVINHACAO

import random

def jogar_adivinhacao():

    #CABEÇALHO DO JOGO
    print(61 * "*")
    print("Será que você consegue adivinhar o número secreto de 1 a 100?")
    print(61 * "*")

    #PRINCIPAIS VARIÁVEIS
    numero_secreto = random.randrange(1,101)
    total_de_tentativas = 0
    max_pontos = 1000

    #NIVEIS
    nivel = int(input("Escolha o nível de dificuldade!\n1(Fácil) 2(Médio) 3(Difícil): "))

    if(nivel == 1):
        total_de_tentativas = 20
    elif(nivel == 2):
        total_de_tentativas = 10
    elif(nivel == 3):
        total_de_tentativas = 5
    else:
        print("Escolha um nível de 1 a 3!")

    #LAÇO
    for rodada in range(1,total_de_tentativas + 1):
        print("Tentativa {0} de {1}".format(rodada,total_de_tentativas))
        palpite = int(input("Digite um número de 1 a 100: "))

        if(palpite > 100 or palpite < 1):
            print("Atenção! Você digitou um valor fora do range informado!")
            continue

        acertou = palpite == numero_secreto
        maior = palpite > numero_secreto
        menor = palpite < numero_secreto

        if(acertou):
            print("Parabéns! Você acertou :D")
            break

        else:
            if(maior):
                print("{} é > que o número secreto.".format(palpite))
            elif(menor):
                print("{} é < que o número secreto.".format(palpite))

    #PONTOS
        pontos = round(abs(max_pontos - palpite)/3)
        print("Você fez {} pontos.".format(pontos))
    print("Fim de jogo.")

if(__name__ == "__main__"):
    jogar_adivinhacao()
#JOGO DA FORCA

def jogar_forca():

    print(29 * "*")
    print("Bem-vindo(a) ao jogo da forca")
    print(29 * "*")

if(__name__ == "__main__"):
    jogar_forca()
1 resposta

Oi, Thamara. Testei seu código online e pediu <Enter> para fechar o console. Tudo Ok.

Para ter certeza de que não vai fechar repentinamente, use o input no lugar do print

input("Fim de jogo.")