Je dois faire un labyrinthe avec trois niveaux différents qui vous permet de quitter à tout moment. J'ai essayé d'insérer mon appel quit()
partout, mais je n'arrive pas à le faire fonctionner. Quelqu'un peut-il me dire ce que je fais mal? Est-ce quelque chose de facile que je peux réparer ou ma logique est-elle juste loin? Merci! :(Comment ajouter une commande stop/quit/end à cette liste en python?
def start():
print('Welcome to the Maze!')
choose_level()
def choose_level():
level = input('Select a level: Easy, Average, or Difficult \n')
if level == 'Easy' or 'easy' or 'EASY' or '1':
return easy()
elif level == 'Average' or 'average' or 'AVERAGE' or '2':
return average()
elif level == 'Difficult' or 'difficult' or 'DIFFICULT' or '3':
return difficult()
def easy():
maze1_list = []
# [Description, North, East, South, West]
maze1_list.append(['Available Directions: East', None, 1, None, None]) #0
maze1_list.append(['Available Directions: East, South, West', None, 2, 3, 0]) #1
maze1_list.append(['Available Directions: West', None, None, None, 1]) #2
maze1_list.append(['Available Directions: North, East', 1, 4, None, None]) #3
maze1_list.append(['Available Directions: South, West', None, None, 5, 3]) #4
current_tile = 0
done = False
directions = {'North' or 'north' or 'NORTH':1, 'East' or 'east' or 'EAST':2, 'South' or 'south' or 'SOUTH':3, 'West' or 'west' or 'WEST':4}
#Source: obtained from <https://stackoverflow.com/questions/46511833/how-do-you-make-a-simple-3x3-maze-on-python-using-lists/46517061#46517061>
#Date: <October 2, 2017>
#Name of Author/Programmer: <Anton vBR>
while not done:
print('')
print(maze1_list[current_tile][0])
x = '0'
available = False
while not available:
while not directions.get(x.title()): #Source: obtained from <http://programarcadegames.com/index.php?chapter=lab_adventure>
#Date: <October 2, 2017>
#Name of Author/Programmer: <Paul Vincent Craven>
if x!='0':
print('Please choose an available direction. ')
x = input('Which direction will you take? \n')
next_move = directions.get(x.title()) #Source: obtained from <http://programarcadegames.com/index.php?chapter=lab_adventure>
#Date: <October 2, 2017>
#Name of Author/Programmer: <Paul Vincent Craven>
next_tile = maze1_list[current_tile][next_move]
if next_tile:
available = True
current_tile = next_tile
elif x == 'quit':
quit()
else:
print('Please choose an availble direction.')
x = '0'
if current_tile == 5:
print('Congratulations! You found the exit. \nGoodbye.')
done = True
# i'm going to cut off the average and difficult levels of my code here
since they're the same concept as the easy level
Cela peut être utile: https://stackoverflow.com/questions/19747371/ python-exit-commandes-pourquoi-tant-et-quand-devrait-chaque-être-utilisé – SherylHohman
Possible copie de [Comment tester une variable par rapport à plusieurs valeurs?] (https://stackoverflow.com/questions/ 15112125/how-do-i-test-one-variable-against-multiple-values) – jasonharper
Bien que le test d'une variable par rapport à plusieurs valeurs ait été incorrectement implémenté (comme la définition du dictionnaire pour 'directions'), aucun d'entre eux n'a causé le problème sous-jacent et le problème principal d'une boucle sans fin. – SherylHohman