v0.6
Sauvegarde du 14/04/2020
This commit is contained in:
parent
e13f667b9b
commit
5e263e8bb1
8 changed files with 71 additions and 23 deletions
BIN
config.pickle
BIN
config.pickle
Binary file not shown.
55
main.pyw
55
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
|
||||
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -11,6 +11,9 @@ class morse():
|
|||
self.morse.grid(row = 1, column = 1)
|
||||
|
||||
|
||||
def start(self):
|
||||
pass
|
||||
# mot à afficher en morse
|
||||
|
||||
|
||||
classModule["morse"] = morse()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue