diff --git a/config.pickle b/config.pickle index 07bc3a0..17b6722 100644 Binary files a/config.pickle and b/config.pickle differ diff --git a/main.pyw b/main.pyw index b9a8b57..fcd1e63 100644 --- a/main.pyw +++ b/main.pyw @@ -19,7 +19,7 @@ for file in os.listdir(PATH_MODULE): # On cherche les modules dans leur dossier class AppClass(): # Classe du "moteur" du jeu def __init__(self): # Initialisation - self.load() + self.load_settings() self.MainMenu() @@ -46,29 +46,23 @@ class AppClass(): # Classe du "moteur" du jeu classModule["simon"].bind(UpCmd = func_up, DownCmd = func_down, LeftCmd = "pass", RightCmd = func_right) - def save(self): # self.config -> enregistrer dans un fichier pickle - with open(r"config.pickle", "wb") as file: - pickle.dump(self.config, file) - - - def load(self): # Lire le fichier pickle -> self.config - try: # En supposant que le fichier pickle existe et qu'il ne soit pas corrompu - with open(r"config.pickle","rb") as file: - self.config = pickle.load(file) - except: # Sinon, charge les options par défaut - with open(r"config.json","rb") as file: - self.config = json.load(file) - def start(self): - pass - # Code pour démarrer une partie + for module in classModule: + classModule[module].start() + + classModule["simon"].bind(UpCmd = "pass", DownCmd = "pass", LeftCmd = "pass", RightCmd = "pass") + + # Initilisalisé tout les modules + # Démmaré un chrono + def settings(self, selected = 0): # On créer un dictionnaire qui associe toute les options proposé à leur fonction respective. SettingsMenu_Keys = list(self.config.keys()) # On créer une liste qui ne contient que les clé du dictionnaire, permettant d'utiliser des index numériques. + selected_name = SettingsMenu_Keys[selected] - classModule["display"].write(SettingsMenu_Keys[selected]) # On affiche le texte sur l'écran + classModule["display"].write(selected_name) # On affiche le texte sur l'écran if selected == 0: func_up = "pass" # Si on est à la première option, ne fait rien else: func_up = lambda: self.settings(selected = selected - 1) # sinon, remonte @@ -76,9 +70,8 @@ class AppClass(): # Classe du "moteur" du jeu if selected == len(SettingsMenu_Keys) - 1: func_down = "pass" # Si on est à la dernière option, ne fait rien else: func_down = lambda: self.settings(selected = selected + 1) # sinon, descend - selected_name = SettingsMenu_Keys[selected] - func_right = lambda: self.modif_settings(selected_name = selected_name) # Renvoie la fonction associé à l'option selectionné - + selected_value = self.config[selected_name]["Available"].index(self.config[selected_name]["Value"]) # Valeur de l'index de la valeur déjà défini dans les paramètres + func_right = lambda: self.modif_settings(selected_name = selected_name, selected = selected_value) # Renvoie la fonction associé à l'option selectionné func_left = lambda: self.MainMenu(selected = 1) classModule["simon"].bind(UpCmd = func_up, DownCmd = func_down, LeftCmd = func_left, RightCmd = func_right) @@ -97,17 +90,33 @@ class AppClass(): # Classe du "moteur" du jeu else: func_down = lambda: self.modif_settings(selected_name = selected_name, selected = selected + 1) # sinon, descend - func_right = lambda: "pass" + func_right = lambda: self.save_settings(selected_name = selected_name, selected = ModifSettingsMenu_Keys[selected]) func_left = lambda: self.settings(selected = 0) classModule["simon"].bind(UpCmd = func_up, DownCmd = func_down, LeftCmd = func_left, RightCmd = func_right) - # Faire le système pour confirmer # + Bonus : afficher par défaut la valeur sur laquel le jeu est paramétrer + def save_settings(self, selected_name, selected): + self.config[selected_name]["Value"] = selected + + with open(r"config.pickle", "wb") as file: + pickle.dump(self.config, file) + + self.settings(selected = 0) + + + def load_settings(self): # Lire le fichier pickle -> self.config + try: # En supposant que le fichier pickle existe et qu'il ne soit pas corrompu + with open(r"config.pickle","rb") as file: + self.config = pickle.load(file) + except: # Sinon, charge les options par défaut + with open(r"config.json","rb") as file: + self.config = json.load(file) def leave(self): - pass + Fen.destroy() + exit() # Code pour quitter le jeu diff --git a/module/button.py b/module/button.py index 3b34955..49834db 100644 --- a/module/button.py +++ b/module/button.py @@ -7,4 +7,10 @@ class button(): self.big_but.grid(row = 1, column = 1) + + def start(self): + pass + # déterminer les règles pour désamorçer + + classModule["button"] = button() diff --git a/module/display.py b/module/display.py index ddf1c34..24a163b 100644 --- a/module/display.py +++ b/module/display.py @@ -10,4 +10,19 @@ class display(): self.label.config(text = text) + def chrono(self, time): + minute = time // 60 + seconde = time % 60 + + self.write("%02i:%02i" % (minute, seconde)) + + self.chrono_event = Fen.after(1000, lambda: self.chrono(time - 1)) + + + def start(self): + self.chrono(time = 180) + # rien de spécial + # peut être chrono + + classModule["display"] = display() diff --git a/module/morse.py b/module/morse.py index 6d715d4..c0a8871 100644 --- a/module/morse.py +++ b/module/morse.py @@ -11,6 +11,9 @@ class morse(): self.morse.grid(row = 1, column = 1) + def start(self): + pass + # mot à afficher en morse classModule["morse"] = morse() diff --git a/module/safe.py b/module/safe.py index 132ee34..b3cff56 100644 --- a/module/safe.py +++ b/module/safe.py @@ -9,4 +9,10 @@ class safe(): self.scale = Scale(self.frame, from_ = 1, to_ = 4, orient = HORIZONTAL) # On créer un scroller pour sélectionner une valeur entre 1 et 4 self.scale.grid(row = 2, column = 1) + + def start(self): + pass + # Code qui choisi des combinaisons à rentré + + classModule["safe"] = safe() diff --git a/module/simon.py b/module/simon.py index 0817f7a..543bee5 100644 --- a/module/simon.py +++ b/module/simon.py @@ -25,4 +25,9 @@ class simon(): self.dico_but["Down"].config(command = DownCmd) + def start(self): + pass + # Code qui choisi des combinaisons à rentré et des led qui s'allument + + classModule["simon"] = simon() diff --git a/module/wire.py b/module/wire.py index 2dd39c4..fa73306 100644 --- a/module/wire.py +++ b/module/wire.py @@ -18,5 +18,9 @@ class wire(): self.dico_wire[led]["WIRE"].grid(row = index, column = 2) + def start(self): + print("les fils sont oppérationnels") + # Code qui choisi des led qui doivent s'allumé, etc... + classModule["wire"] = wire() # On ajoute le module à la liste des modules