v0.5
Sauvegarde du 13/04/2020
This commit is contained in:
parent
345f687f4a
commit
e13f667b9b
2 changed files with 59 additions and 2 deletions
BIN
config.pickle
Normal file
BIN
config.pickle
Normal file
Binary file not shown.
61
main.pyw
61
main.pyw
|
@ -1,6 +1,8 @@
|
||||||
########### import #############
|
########### import #############
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
import os
|
import os
|
||||||
|
import pickle
|
||||||
|
import json
|
||||||
|
|
||||||
########## constante ###########
|
########## constante ###########
|
||||||
PATH_MODULE = "module/"
|
PATH_MODULE = "module/"
|
||||||
|
@ -17,10 +19,12 @@ for file in os.listdir(PATH_MODULE): # On cherche les modules dans leur dossier
|
||||||
class AppClass(): # Classe du "moteur" du jeu
|
class AppClass(): # Classe du "moteur" du jeu
|
||||||
def __init__(self): # Initialisation
|
def __init__(self): # Initialisation
|
||||||
|
|
||||||
|
self.load()
|
||||||
self.MainMenu()
|
self.MainMenu()
|
||||||
|
|
||||||
|
|
||||||
def MainMenu(self, selected = 0): # Niveau 1
|
def MainMenu(self, selected = 0): # Niveau 1
|
||||||
|
|
||||||
MainMenu_Option = {
|
MainMenu_Option = {
|
||||||
"Lancer" : self.start,
|
"Lancer" : self.start,
|
||||||
"Option" : self.settings,
|
"Option" : self.settings,
|
||||||
|
@ -38,16 +42,69 @@ class AppClass(): # Classe du "moteur" du jeu
|
||||||
|
|
||||||
func_right = MainMenu_Option[MainMenu_Keys[selected]] # Renvoie la fonction associé à l'option selectionné
|
func_right = MainMenu_Option[MainMenu_Keys[selected]] # Renvoie la fonction associé à l'option selectionné
|
||||||
|
|
||||||
|
|
||||||
classModule["simon"].bind(UpCmd = func_up, DownCmd = func_down, LeftCmd = "pass", RightCmd = func_right)
|
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):
|
def start(self):
|
||||||
pass
|
pass
|
||||||
# Code pour démarrer une partie
|
# Code pour démarrer une partie
|
||||||
|
|
||||||
def settings(self):
|
def settings(self, selected = 0):
|
||||||
classModule["display"].write("settings")
|
# 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.
|
||||||
|
|
||||||
|
classModule["display"].write(SettingsMenu_Keys[selected]) # 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
|
||||||
|
|
||||||
|
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é
|
||||||
|
|
||||||
|
func_left = lambda: self.MainMenu(selected = 1)
|
||||||
|
|
||||||
|
classModule["simon"].bind(UpCmd = func_up, DownCmd = func_down, LeftCmd = func_left, RightCmd = func_right)
|
||||||
|
|
||||||
|
|
||||||
|
def modif_settings(self, selected_name, selected = 0):
|
||||||
|
# On créer une liste qui ne contient que les clé du dictionnaire, permettant d'utiliser des index numériques.
|
||||||
|
ModifSettingsMenu_Keys = self.config[selected_name]["Available"]
|
||||||
|
|
||||||
|
classModule["display"].write(ModifSettingsMenu_Keys[selected]) # 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.modif_settings(selected_name = selected_name, selected = selected - 1)
|
||||||
|
|
||||||
|
if selected == len(ModifSettingsMenu_Keys) - 1: func_down = "pass" # Si on est à la dernière option, ne fait rien
|
||||||
|
else: func_down = lambda: self.modif_settings(selected_name = selected_name, selected = selected + 1) # sinon, descend
|
||||||
|
|
||||||
|
|
||||||
|
func_right = lambda: "pass"
|
||||||
|
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 leave(self):
|
def leave(self):
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in a new issue