2017-10-14 2 views
-1

Je suis donc un débutant en train de créer un jeu de base de texte, et je suis dans une situation où le joueur découvre comment déverrouiller une porte verrouillée et est capable de sortir. Mais je ne veux pas qu'ils sortent de la porte avant qu'ils ne l'aient déverrouillée. Par conséquent, je pensais que je crée une fonction définie distincte que j'ai écrit comme ceci:Comment ajouter une fonction définie dans une autre fonction définie?

def exit_(): 
    if decision == "exit": 
     print("(exit room)") 
     print("You exit the room.") 
     room_2() 
     #level up here 
    elif decision == "exit prison cell": 
     print("(exit room)") 
     print("You exit the room.") 
     room_2() 
     # level up here 
    elif decision == "exit the prison cell": 
     print("(exit room)") 
     print("You exit the room.") 
     room_2() 

puis ajouté ensemble comme ceci:

room_1() and exit_() 

Après que le joueur inputed correctement leur réponse pour déverrouiller la porte. Mais cela ne semble pas fonctionner, existe-t-il un moyen d'ajouter deux fonctions définies ensemble ou peut-être que je dois utiliser une autre méthode?

Répondre

0

Vous pouvez utiliser booléens pour vérifier si l'utilisateur est en mesure de passer par la porte verrouillée ou non:

door_locked == True 
if userinput == correct_answer: 
    door_locked = False 
    # user can do whatever they want now the door is unlocked 
    room_2() 
else: 
    door_locked = True 
    # user can do whatever they want but the door is still locked 
+0

Ceci est pas Python ... 'bool door_locked == true' ?? Python est un langage dynamique, les variables ne sont pas typées, et c'est 'True', pas' true', aussi, qu'est-ce que 'user.input' ??? –

+0

Le code @ juanpa.arrivillaga est générique et peut être traduit facilement par exemple ... 'correct_answer =" déverrouiller "' 'input = entrée (" ")' 'if (entrée == correct_answer)' etc. –

0
def exit_(decision): 
    if decision== "exit": 
       print ("(exit room)") 
       print ("You exit the room.") 
       room_2() 
       #level up here 
    elif decision== "exit prison cell": 
       print ("(exit room)") 
       print ("You exit the room.") 
       room_2() 
       #level up here 
    elif decision== "exit the prison cell": 
       print ("(exit room)") 
       print ("You exit the room.") 
       room_2() 

Et vous faire room_1() à la sortie de la décision

def room_1(): 
    #do stuff... 
    return decision 

Ensuite, vous appelez

exit(room_1())