Cree une fonction pour afficher l'aide
Concerne le stockage des constantes DIRECTIONS & COMMANDS avec leurs description specifique. Desormais les 2 donnees sont stockees de la meme maniere (2 listes distinctes contenant la commande et la description), permettant une mise en forme simplifiee via une fonction (get_msg_list() )
This commit is contained in:
parent
487a696094
commit
ec02c5bc0a
|
@ -14,8 +14,6 @@ MAP_DIRECTORY = 'cartes/' # repertoire des fichiers carte
|
|||
MAP_EXTENTION = '.txt' # extention des fichiers carte
|
||||
BACKUP_FILE = '.backup' # fichier de sauvegarde
|
||||
MSG_NO_YES = ['non', 'oui']
|
||||
COMMANDS = {'quit': 'Q', # commandes d'interuption
|
||||
'help': 'H'}
|
||||
# TODO standardiser la maniere de stocker:
|
||||
# - DIRECTIONS & DIRECTIONS_LABEL
|
||||
# - MOVE_STATUS & MOVE_STATUS_MSG
|
||||
|
@ -23,6 +21,16 @@ COMMANDS = {'quit': 'Q', # commandes d'interuption
|
|||
# Meilleure sera la comprehension de la conf et ca permettra de faire
|
||||
# une fonction affiche_liste(VAR) commune pour la liste des fichiers de
|
||||
# carte et celle de l'aide.
|
||||
|
||||
# COMMANDES D'INTERUPTION:
|
||||
# le code utilise l'index des listes `COMMANDS` & `COMMANDS_LABEL`
|
||||
# pour faire le lien entre les 2.
|
||||
# Ici vous pouvez ajouter de nouvelles commandes de jeu, elle seront
|
||||
# ajoutees a l'aide automatiquement. Mais il faudra ajouter le code
|
||||
# leur correspondant dans la condition de traitement du mouvement.
|
||||
COMMANDS = ['Q', 'H']
|
||||
# Libelle des commandes d'interuption, conserver l'ordre
|
||||
COMMANDS_LABEL = ['Sauvegarder & quitter', 'Aide']
|
||||
DIRECTIONS = ['N', 'S', 'E', 'O'] # commandes clavier de deplacement
|
||||
DIRECTIONS_LABEL = ['nord', # etiquette des commandes clavier
|
||||
'sud', # des de deplacements pour
|
||||
|
@ -58,15 +66,13 @@ MSG_AVAIBLE_MAP = "Cartes disponible: "
|
|||
MSG_BACKUP_DONE = "La partie a été sauvegardée."
|
||||
MSG_BACKUP_GAME = "Partie sauvegardé chargée"
|
||||
MSG_CHOOSE_MAP = "Choississez un numéro de carte: "
|
||||
MSG_CHOOSE_MOVE = "Votre deplacement ({} pour l'aide): "
|
||||
MSG_CHOOSE_MOVE = "Votre deplacement ({}:{}): "
|
||||
MSG_DOOR = "Vous passez une porte"
|
||||
MSG_START_GAME = "Votre partie commence"
|
||||
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
|
||||
|
||||
|
||||
|
@ -137,3 +143,27 @@ def choose_maps_menu():
|
|||
|
||||
# instenciation de la carte choisie
|
||||
return Map(map_file)
|
||||
|
||||
|
||||
def get_msg_list(command, label):
|
||||
"""
|
||||
Formate une chaine pour afficher les commandes et leurs descriptifs
|
||||
|
||||
:type key: lst()
|
||||
:param key: liste de commande
|
||||
:type label: lst()
|
||||
:param label: Texte descriptif des commande associee
|
||||
:rtype: str()
|
||||
:return: Chaine formatee assemblant les elements en parametres
|
||||
"""
|
||||
|
||||
# Modele de mise en forme de la liste de chaque element
|
||||
TEMPLATE = "\t- «{}»: {}\n"
|
||||
|
||||
# Variable de setour
|
||||
result = str()
|
||||
|
||||
for key, value in enumerate(command):
|
||||
result += TEMPLATE.format(value ,label[key])
|
||||
|
||||
return result
|
||||
|
|
|
@ -20,11 +20,11 @@ https://openclassrooms.com/courses/apprenez-a-programmer-en-python/exercises/180
|
|||
import os
|
||||
import pickle
|
||||
# from map import Map
|
||||
from configuration import BACKUP_FILE, choose_maps_menu, cls, COMMANDS, \
|
||||
DIRECTIONS, DIRECTIONS_LABEL, ERR_UNKNOW, MAP_DIRECTORY, MAP_EXTENTION, maps_name_list, \
|
||||
from configuration import BACKUP_FILE, choose_maps_menu, cls, COMMANDS, COMMANDS_LABEL, \
|
||||
DIRECTIONS, DIRECTIONS_LABEL, ERR_UNKNOW, get_msg_list, MAP_DIRECTORY, MAP_EXTENTION, maps_name_list, \
|
||||
MOVE_STATUS, MOVE_STATUS_MSG, MSG_AVAIBLE_BACKUP, MSG_BACKUP_DONE, MSG_BACKUP_GAME, \
|
||||
MSG_CHOOSE_MOVE, MSG_DISCLAMER, MSG_END_GAME, MSG_HELP, MSG_NO_YES, \
|
||||
TEMPLATE_HELP_LIST, user_select_backup
|
||||
user_select_backup
|
||||
|
||||
# DEBUT DU JEU
|
||||
|
||||
|
@ -74,36 +74,20 @@ while current_map.status:
|
|||
|
||||
# choix du deplacement
|
||||
user_select_move = input(MSG_CHOOSE_MOVE.format(
|
||||
COMMANDS['help'])
|
||||
COMMANDS[1], COMMANDS_LABEL[1])
|
||||
).upper()
|
||||
cls() # clear screen
|
||||
|
||||
if user_select_move == COMMANDS['quit']: # quitter et sauvegarder
|
||||
if user_select_move == COMMANDS[0]: # sauvegarder & quitter
|
||||
current_map.status = False
|
||||
current_map.status_message = MSG_BACKUP_DONE
|
||||
|
||||
# TODO standardiser la maniere de stocker:
|
||||
# - DIRECTIONS & DIRECTIONS_LABEL
|
||||
# - MOVE_STATUS & MOVE_STATUS_MSG
|
||||
# - COMMANDS
|
||||
# Meilleure sera la comprehension de la conf et ca permettra de faire
|
||||
# une fonction affiche_liste(VAR) commune pour la liste des fichiers de
|
||||
# carte et celle de l'aide.
|
||||
elif user_select_move == COMMANDS['help']: # Affiche l'aide
|
||||
|
||||
elif user_select_move == COMMANDS[1]: # 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])
|
||||
|
||||
current_map.status_message += get_msg_list(DIRECTIONS, DIRECTIONS_LABEL)
|
||||
# liste les commandes
|
||||
for command, command_label in COMMANDS.items():
|
||||
current_map.status_message += TEMPLATE_HELP_LIST.format(
|
||||
command,
|
||||
command_label)
|
||||
current_map.status_message += get_msg_list(COMMANDS, COMMANDS_LABEL)
|
||||
|
||||
else: # traitement du deplacement
|
||||
move_status_id = current_map.move_to(user_select_move)
|
||||
|
@ -115,6 +99,7 @@ while current_map.status:
|
|||
current_map.status = False
|
||||
|
||||
else: # sinon on sauvegarde avant de boucler
|
||||
# FIXME le message tour a tour est perdu apres la sauvegarde
|
||||
current_map.status_message = MSG_BACKUP_GAME
|
||||
with open(BACKUP_FILE, 'wb') as backup_file:
|
||||
pickle.Pickler(backup_file).dump(current_map)
|
||||
|
|
Loading…
Reference in New Issue