Code continues to run after the game ends

2

On line 10, even though I choose option 2 to not continue in the game, End of Game appears but the code continues to roll.

On the line marked (line 10), even if I choose option 2, which should be the end of the game, the game still continues even though I choose option 2! Does anyone know how to help me?

print("========TESTE RPG========")
print()
print("========BEM VINDO A ASGARD!========")
print("Você tem certeza que deseja encarar essa jornada?")
a = int(input("Digite '1' para sim ou digite '2' para não!"))
if (a==1):
    print("Boa jornada aventureiro!")
else:
    if(a==2):
        print("Fim de jogo!") # Linha 10.

    else:
        print("Você precisa digitar '1' ou '2'!!!")
    print("Velho Estranho: Vejo que és corajoso jovem guerreiro!")
    print("Velho Estranho: Meu nome é Danagorn!")
    print("Danagorn: Qual é o seu nome meu jovem?")
    nome = input("Eu: Meu nome é:")
    print("Danagorn: Bem, seja bem vindo a Asgard,", nome)
    print("Danagorn: Vejo que estás sem seus equipamentos! Gostaria de se equipar?")
    equip = int(input("Digite '1' para confirmar ação, ou '2' para negar!"))
if (equip==1):
    print("Danagorn: Tome aqui então esta armadura, que com certeza lhe será util!")
    print("Danagorn: Pegue também esta espada e este escudo, lhe serão de grande serventia!")
else:
    if(equip==2):
        print("Danagorn: Não permitirei que você siga em frente sem estar bem equipado!")
        print("Danagorn: Se você não se equipar, receio que não possamos continuar nossa jornada!")
        equip1 = int(input("Digite '1' para se equipar, ou digite '2' para desistir da jornada!"))
        if(equip1==1):
            print("Danagorn: Boa escolha, meu jovem!")
        else:
            print("Danagorn: A sua jornada se encerra aqui!")
            print("Fim de jogo!")
    
asked by anonymous 15.12.2017 / 00:45

2 answers

0

This is because although the code enters the specific condition, processing continues from line 15. You need to stop the game by running the following command:

import sys
sys.exit()

Add immediately after the line:

print("Fim de jogo!")
    
15.12.2017 / 01:39
-1

Try something like this:

def ler_input(msg):
    a = 0
    while a != 1 and a != 2:
        a = int(input(msg))
        if a != 1 and a != 2:
            print("Você precisa digitar '1' ou '2'!!!")
    return a == 1

print("========TESTE RPG========")
print()
print("========BEM VINDO A ASGARD!========")
print("Você tem certeza que deseja encarar essa jornada?")

a = ler_input("Digite '1' para sim ou digite '2' para não!")

if a:
    print("Boa jornada aventureiro!")
    print("Velho Estranho: Vejo que és corajoso jovem guerreiro!")
    print("Velho Estranho: Meu nome é Danagorn!")
    print("Danagorn: Qual é o seu nome meu jovem?")
    nome = input("Eu: Meu nome é:")
    print("Danagorn: Bem, seja bem vindo a Asgard,", nome)
    print("Danagorn: Vejo que estás sem seus equipamentos! Gostaria de se equipar?")
    equip = ler_input("Digite '1' para confirmar ação, ou '2' para negar!")
    if equip:
        print("Danagorn: Tome aqui então esta armadura, que com certeza lhe será util!")
        print("Danagorn: Pegue também esta espada e este escudo, lhe serão de grande serventia!")
    else:
        print("Danagorn: Não permitirei que você siga em frente sem estar bem equipado!")
        print("Danagorn: Se você não se equipar, receio que não possamos continuar nossa jornada!")
        equip1 = ler_input("Digite '1' para se equipar, ou digite '2' para desistir da jornada!")
        if equip1:
            print("Danagorn: Boa escolha, meu jovem!")
        else:
            print("Danagorn: A sua jornada se encerra aqui!")
print("Fim de jogo!")

The idea is to create the ler_input(msg) function that asks the user, insisting that he answer 1 or 2 until he does this.

The print("Fim de jogo!") gets well at the end, out of any indentation so that it always appears only once and only at the end, regardless of what paths the code execution takes in the previous steps.

    
15.12.2017 / 04:47