def set_etat(state): """ Définit l'état courant @state : str = le nouvel état @return : None """ global etat if state not in etats: raise EtatInvalide(state) etat = state # petits trucs ici pour les transitions # iconsole.separateur () iconsole.clear() afficher("Vous êtes maintenant dans un nouveau mode") afficher_aide() # Affiche l'aide du nouvel état
def send(rep): """ Envoie une requête utilisateur au Mastermind qui va gérer la redirection et les actions nécessaires @rep : str = la requête @return : str = l'état actuel """ if rep == "help": # Commande indépendante de l'état courant ! afficher_aide() elif rep == "regles": # Commande indépendante de l'état courant ! afficher("Affichage des règles sur la fenêtre graphique ...") set_ecran("regles", 2) elif rep == "clear": iconsole.clear() elif rep == "scores": # Commande indépendante de l'état courant ! afficher("Affichage des scores sur la fenêtre graphique ...") set_ecran("scores", 1) s, n = scores.recup_score(), scores.recup_nom() liste = utils.bi_map(lambda a, b: (a, b), s, n) afficher_liste("Scores", liste) elif rep == "fortune": try: maximum = persistance.get_propriete("phrases", "max") maximum = int(maximum) aleatoire = randint(0, maximum - 1) afficher(persistance.get_propriete("phrases", str(aleatoire))) except persistance.CleInvalide: afficher("Il est impossible de récupérer la fortune ... le fichier « phrases » doit être corrompu »") except persistanec.FichierInvalide: afficher( "Le fichier est introuvable ... Cela implique un problème dans le CODE SOURCE ... revenez plus tard ..." ) except ValueError: afficher("La valeur de « max » dans « phrases » est fausse et ne représente pas un nombre valide ...") except: afficher("Une erreur inconnue est survenue ... ") elif rep == "couleurs": afficher_couleurs() elif get_etat() == "Humain-Joue": humain_joue(rep) elif get_etat() == "Menu": menu(rep) elif get_etat() == "Menu-Partie": menu_partie(rep) elif get_etat() == "Theme": theme(rep) elif get_etat() == "Niveau": niveau(rep) elif get_etat() == "Proposer-Code": proposer_code(rep) elif get_etat() == "Definir-Code": definir_code(rep) else: raise ErreurFatale return get_etat()