Ajout d'un menu d'aide
Propose la liste des commandes disponible au tour de jeu
This commit is contained in:
parent
8199893fd4
commit
9aaa08d9ad
|
@ -13,11 +13,20 @@ Ce fichier fait partie du projet `roboc`
|
|||
MAP_DIRECTORY = 'cartes/' # repertoire des fichiers carte
|
||||
MAP_EXTENTION = '.txt' # extention des fichiers carte
|
||||
BACKUP_FILE = '.backup' # fichier de sauvegarde
|
||||
DIRECTIONS = ['N', 'S', 'E', 'O'] # commandes de deplacement
|
||||
MSG_NO_YES = ['non', 'oui']
|
||||
COMMANDS = {'quit': 'Q', # commandes d'interuption
|
||||
'help': 'H'}
|
||||
MAZE_ELEMENTS = {'wall': 'O', # elements dispo dans le labyrinthe
|
||||
# TODO14 reproduire la maniere de stocker:
|
||||
# - DIRECTIONS & DIRECTIONS_LABEL
|
||||
# - MOVE_STATUS & MOVE_STATUS_MSG
|
||||
# - COMMANDS
|
||||
# pour mettre en fonction la generation de liste du TODO15
|
||||
DIRECTIONS = ['N', 'S', 'E', 'O'] # commandes clavier de deplacement
|
||||
DIRECTIONS_LABEL = ['nord', # etiquette des commandes clavier
|
||||
'sud', # des de deplacements pour
|
||||
'est', # l'affichage de l'aide.
|
||||
'ouest'] # Garder la correspondance
|
||||
MAZE_ELEMENTS = {'wall': 'O', # Elements dispo dans le labyrinthe
|
||||
'door': '.',
|
||||
'exit': 'U',
|
||||
'robo': 'X',
|
||||
|
@ -47,11 +56,14 @@ MSG_AVAIBLE_MAP = "Cartes disponible: "
|
|||
MSG_BACKUP_DONE = "La partie a été sauvegardée."
|
||||
MSG_BACKUP_GAME = "Partie sauvegardé"
|
||||
MSG_CHOOSE_MAP = "Choississez un numéro de carte: "
|
||||
MSG_CHOOSE_MOVE = "Votre deplacement: "
|
||||
MSG_CHOOSE_MOVE = "Votre deplacement ({} pour l'aide): "
|
||||
MSG_DOOR = "Vous passez une porte"
|
||||
MSG_HELP = "Voici les commandes disponibles:\n"
|
||||
MSG_SELECTED_MAP = "Vous avez fait le choix #{}, la carte «{}»."
|
||||
MSG_END_GAME = "Fin de la partie."
|
||||
|
||||
TEMPLATE_HELP_LIST = "\t- «{}»: {}\n" # Modele de la liste d'aide
|
||||
|
||||
DEBUG = False
|
||||
|
||||
|
||||
|
|
|
@ -21,9 +21,10 @@ import os
|
|||
import pickle
|
||||
# from map import Map
|
||||
from configuration import BACKUP_FILE, choose_maps_menu, cls, COMMANDS, \
|
||||
ERR_UNKNOW, MAP_DIRECTORY, MAP_EXTENTION, maps_name_list, MOVE_STATUS, \
|
||||
MOVE_STATUS_MSG, MSG_AVAIBLE_BACKUP, MSG_BACKUP_DONE, MSG_CHOOSE_MOVE, \
|
||||
MSG_DISCLAMER, MSG_END_GAME, MSG_NO_YES, user_select_backup
|
||||
DIRECTIONS, DIRECTIONS_LABEL, ERR_UNKNOW, MAP_DIRECTORY, MAP_EXTENTION, maps_name_list, \
|
||||
MOVE_STATUS, MOVE_STATUS_MSG, MSG_AVAIBLE_BACKUP, MSG_BACKUP_DONE, \
|
||||
MSG_CHOOSE_MOVE, MSG_DISCLAMER, MSG_END_GAME, MSG_HELP, MSG_NO_YES, \
|
||||
TEMPLATE_HELP_LIST, user_select_backup
|
||||
|
||||
# DEBUT DU JEU
|
||||
|
||||
|
@ -69,33 +70,46 @@ else:
|
|||
# Affichage de la carte et de la position de jeu
|
||||
while current_map.status:
|
||||
current_map.map_print()
|
||||
print(current_map.status_message)
|
||||
|
||||
# choix du deplacement
|
||||
user_select_move = input(MSG_CHOOSE_MOVE).upper()
|
||||
user_select_move = input(MSG_CHOOSE_MOVE.format(
|
||||
COMMANDS['help'])
|
||||
).upper()
|
||||
cls() # clear screen
|
||||
|
||||
if user_select_move == COMMANDS['quit']: # quitter et sauvegarder
|
||||
# TODO16 vider le message avant sauvegarde
|
||||
with open(BACKUP_FILE, 'wb') as backup_file:
|
||||
pickle.Pickler(backup_file).dump(current_map)
|
||||
|
||||
# TODO12 afficher un recap des commandes dispo
|
||||
# elif user_select_move == COMMANDS['help']: # Affiche les commandes
|
||||
# print(COMMANDS, DIRECTIONS)
|
||||
|
||||
current_map.status = False
|
||||
current_map.status_message = MSG_BACKUP_DONE
|
||||
|
||||
# TODO15 unifier la generation de liste (cartes et aide)
|
||||
elif user_select_move == COMMANDS['help']: # Affiche l'aide
|
||||
|
||||
current_map.status_message = MSG_HELP
|
||||
|
||||
# liste les directions
|
||||
for direction_id, direction in enumerate(DIRECTIONS):
|
||||
current_map.status_message += TEMPLATE_HELP_LIST.format(
|
||||
direction,
|
||||
DIRECTIONS_LABEL[direction_id])
|
||||
|
||||
# liste les commandes
|
||||
for command, command_label in COMMANDS.items():
|
||||
current_map.status_message += TEMPLATE_HELP_LIST.format(
|
||||
command,
|
||||
command_label)
|
||||
|
||||
else: # traitement du deplacement
|
||||
move_status_id = current_map.move_to(user_select_move)
|
||||
current_map.status_message = \
|
||||
MOVE_STATUS_MSG[MOVE_STATUS[move_status_id]].format(user_select_move)
|
||||
|
||||
# La sortie n'est pas atteinte, la boucle continue
|
||||
if MOVE_STATUS[move_status_id] != 'exit':
|
||||
print(current_map.status_message)
|
||||
|
||||
# La sortie est atteinte, fin de la boucle
|
||||
else:
|
||||
if MOVE_STATUS[move_status_id] == 'exit':
|
||||
current_map.status = False
|
||||
|
||||
# TODO10 rester dans la boucle si la carte n'est pas conforme
|
||||
|
|
Loading…
Reference in New Issue