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
|
MAP_EXTENTION = '.txt' # extention des fichiers carte
|
||||||
BACKUP_FILE = '.backup' # fichier de sauvegarde
|
BACKUP_FILE = '.backup' # fichier de sauvegarde
|
||||||
MSG_NO_YES = ['non', 'oui']
|
MSG_NO_YES = ['non', 'oui']
|
||||||
COMMANDS = {'quit': 'Q', # commandes d'interuption
|
|
||||||
'help': 'H'}
|
|
||||||
# TODO standardiser la maniere de stocker:
|
# TODO standardiser la maniere de stocker:
|
||||||
# - DIRECTIONS & DIRECTIONS_LABEL
|
# - DIRECTIONS & DIRECTIONS_LABEL
|
||||||
# - MOVE_STATUS & MOVE_STATUS_MSG
|
# - 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
|
# Meilleure sera la comprehension de la conf et ca permettra de faire
|
||||||
# une fonction affiche_liste(VAR) commune pour la liste des fichiers de
|
# une fonction affiche_liste(VAR) commune pour la liste des fichiers de
|
||||||
# carte et celle de l'aide.
|
# 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 = ['N', 'S', 'E', 'O'] # commandes clavier de deplacement
|
||||||
DIRECTIONS_LABEL = ['nord', # etiquette des commandes clavier
|
DIRECTIONS_LABEL = ['nord', # etiquette des commandes clavier
|
||||||
'sud', # des de deplacements pour
|
'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_DONE = "La partie a été sauvegardée."
|
||||||
MSG_BACKUP_GAME = "Partie sauvegardé chargée"
|
MSG_BACKUP_GAME = "Partie sauvegardé chargée"
|
||||||
MSG_CHOOSE_MAP = "Choississez un numéro de carte: "
|
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_DOOR = "Vous passez une porte"
|
||||||
MSG_START_GAME = "Votre partie commence"
|
MSG_START_GAME = "Votre partie commence"
|
||||||
MSG_HELP = "Voici les commandes disponibles:\n"
|
MSG_HELP = "Voici les commandes disponibles:\n"
|
||||||
MSG_SELECTED_MAP = "Vous avez fait le choix #{}, la carte «{}»."
|
MSG_SELECTED_MAP = "Vous avez fait le choix #{}, la carte «{}»."
|
||||||
MSG_END_GAME = "Fin de la partie."
|
MSG_END_GAME = "Fin de la partie."
|
||||||
|
|
||||||
TEMPLATE_HELP_LIST = "\t- «{}»: {}\n" # Modele de la liste d'aide
|
|
||||||
|
|
||||||
DEBUG = False
|
DEBUG = False
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,3 +143,27 @@ def choose_maps_menu():
|
||||||
|
|
||||||
# instenciation de la carte choisie
|
# instenciation de la carte choisie
|
||||||
return Map(map_file)
|
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 os
|
||||||
import pickle
|
import pickle
|
||||||
# from map import Map
|
# from map import Map
|
||||||
from configuration import BACKUP_FILE, choose_maps_menu, cls, COMMANDS, \
|
from configuration import BACKUP_FILE, choose_maps_menu, cls, COMMANDS, COMMANDS_LABEL, \
|
||||||
DIRECTIONS, DIRECTIONS_LABEL, ERR_UNKNOW, MAP_DIRECTORY, MAP_EXTENTION, maps_name_list, \
|
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, \
|
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, \
|
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
|
# DEBUT DU JEU
|
||||||
|
|
||||||
|
@ -74,36 +74,20 @@ while current_map.status:
|
||||||
|
|
||||||
# choix du deplacement
|
# choix du deplacement
|
||||||
user_select_move = input(MSG_CHOOSE_MOVE.format(
|
user_select_move = input(MSG_CHOOSE_MOVE.format(
|
||||||
COMMANDS['help'])
|
COMMANDS[1], COMMANDS_LABEL[1])
|
||||||
).upper()
|
).upper()
|
||||||
cls() # clear screen
|
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 = False
|
||||||
current_map.status_message = MSG_BACKUP_DONE
|
current_map.status_message = MSG_BACKUP_DONE
|
||||||
|
|
||||||
# TODO standardiser la maniere de stocker:
|
elif user_select_move == COMMANDS[1]: # Affiche l'aide
|
||||||
# - 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
|
|
||||||
|
|
||||||
current_map.status_message = MSG_HELP
|
current_map.status_message = MSG_HELP
|
||||||
|
|
||||||
# liste les directions
|
# liste les directions
|
||||||
for direction_id, direction in enumerate(DIRECTIONS):
|
current_map.status_message += get_msg_list(DIRECTIONS, DIRECTIONS_LABEL)
|
||||||
current_map.status_message += TEMPLATE_HELP_LIST.format(
|
|
||||||
direction,
|
|
||||||
DIRECTIONS_LABEL[direction_id])
|
|
||||||
|
|
||||||
# liste les commandes
|
# liste les commandes
|
||||||
for command, command_label in COMMANDS.items():
|
current_map.status_message += get_msg_list(COMMANDS, COMMANDS_LABEL)
|
||||||
current_map.status_message += TEMPLATE_HELP_LIST.format(
|
|
||||||
command,
|
|
||||||
command_label)
|
|
||||||
|
|
||||||
else: # traitement du deplacement
|
else: # traitement du deplacement
|
||||||
move_status_id = current_map.move_to(user_select_move)
|
move_status_id = current_map.move_to(user_select_move)
|
||||||
|
@ -115,6 +99,7 @@ while current_map.status:
|
||||||
current_map.status = False
|
current_map.status = False
|
||||||
|
|
||||||
else: # sinon on sauvegarde avant de boucler
|
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
|
current_map.status_message = MSG_BACKUP_GAME
|
||||||
with open(BACKUP_FILE, 'wb') as backup_file:
|
with open(BACKUP_FILE, 'wb') as backup_file:
|
||||||
pickle.Pickler(backup_file).dump(current_map)
|
pickle.Pickler(backup_file).dump(current_map)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user