Sauvegarde 19/04/2020
This commit is contained in:
raphael60650 2020-04-19 16:44:02 +02:00
parent 3d621d5397
commit 744749b542
17 changed files with 59 additions and 8 deletions

View file

@ -1,2 +1,4 @@
# ISN-Projet-Emulateur # ISN-Projet-Emulateur
Projet d'ISN de Raphaël Caron et Sebastian Zitouni. Projet d'ISN de Raphaël Caron et Sebastian Zitouni.
Plus d'information sur le wiki du projet : https://github.com/raphael60650/ISN-Projet-Emulateur/wiki

BIN
assets/Manuel.pdf Normal file

Binary file not shown.

BIN
assets/morse/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
assets/morse/10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
assets/morse/11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
assets/morse/12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
assets/morse/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
assets/morse/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/morse/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
assets/morse/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
assets/morse/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

BIN
assets/morse/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
assets/morse/8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
assets/morse/9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -49,10 +49,11 @@ class AppClass(): # Classe du "moteur" du jeu
def start(self): def start(self):
classModule["simon"].bind(UpCmd = "pass", DownCmd = "pass", LeftCmd = "pass", RightCmd = "pass")
for module in classModule: for module in classModule:
classModule[module].start() classModule[module].start()
classModule["simon"].bind(UpCmd = "pass", DownCmd = "pass", LeftCmd = "pass", RightCmd = "pass")
# Initilisalisé tout les modules # Initilisalisé tout les modules
# Démmaré un chrono # Démmaré un chrono

View file

@ -45,15 +45,39 @@ class simon():
def start(self): def start(self):
self.defuse = False # Le module n'est pas désamorçer.
self.Sequence = [] self.Sequence = []
for _ in range(5): self.MaxStep = 6
for _ in range(self.MaxStep):
self.Sequence.append(random.choice(["Up", "Left", "Right", "Down"])) self.Sequence.append(random.choice(["Up", "Left", "Right", "Down"]))
print(self.Sequence) self.Step = 0
self.Step = 4
self.sequence_choice() self.sequence_choice()
self.bind(
UpCmd = lambda: self.check(Button = "Up"),
LeftCmd = lambda: self.check(Button = "Left"),
RightCmd = lambda: self.check(Button = "Right"),
DownCmd = lambda: self.check(Button = "Down"))
self.Sequence_Button = [] # Séquence de bouton sur lesquels le joueur vient de cliqué
def def_sequence(self):
Difficulty = App.config["Difficulté"]["Value"] # Difficulté du jeu
nomber_condition = len(self.rules[Difficulty])
for index in range(nomber_condition): # boucle pour tester toute les conditions
Condition = list(self.rules[Difficulty].keys())[index] # Condition pour utiliser le réarangement des touches
Condition_split = Condition.split(" ")
if Condition_split[0] != "Else": State_led = classModule["wire"].dico_wire[Condition_split[0]]["LIT"]
if (State_led == Condition_split[-1]) or (Condition_split[0] == "Else"): # regarder si le sconditon est bonne avec les LED
self.rules_sequence = self.rules[Difficulty][Condition] # difinition de la bonne séquence
print(self.rules_sequence)
print(Condition)
break # On arrête la boucle car on a trouvé ce que l'on cherchait
def reset_all(self): def reset_all(self):
self.dico_but["Up"].config(background = "lightgreen") self.dico_but["Up"].config(background = "lightgreen")
@ -75,15 +99,37 @@ class simon():
self.dico_but[self.Sequence_step].config(background = "yellow") self.dico_but[self.Sequence_step].config(background = "yellow")
else: else:
frame = 0 frame = -1
Fen.after(1000, lambda: self.reset_all()) Fen.after(1000, lambda: self.reset_all())
Fen.after(1500, lambda: self.sequence_choice(frame + 1)) Fen.after(1500, lambda: self.sequence_choice(frame + 1))
# frame désigne le bouton qui doit s'allumer pendant la séquence, à quel étape on en est def check(self, Button):
self.Sequence_Button.append(Button)
Sequence_part = self.Sequence[:(self.Step + 1)]
if len(self.Sequence_Button) >= len(Sequence_part): # Si le joueur a fait autant d'input qu'il y a de LED qui s'allument dans la séquence
_Stop = False
for index in range(len(Sequence_part)):
if self.rules_sequence[Sequence_part[index]] != self.Sequence_Button[index]:
_Stop = True
if not(_Stop):
self.Step += 1
else:
pass
# + Pénalité
self.Sequence_Button = []
if self.Step >= self.MaxStep - 1: # Si le joueur a atteint la dernière étape
self.defuse = True # la bombe est désamorçé.
self.bind(LeftCmd = lambda: "pass", RightCmd = lambda: "pass", UpCmd = lambda: "pass", DownCmd = lambda: "pass")
# Code qui choisi des combinaisons à rentré et des led qui s'allument

View file

@ -62,6 +62,8 @@ class wire():
self.wrong_cut = 0 # Compte le nombre de fils que le joueur n'aurait dû pas coupé avant self.wrong_cut = 0 # Compte le nombre de fils que le joueur n'aurait dû pas coupé avant
self.check(penality = False) # On compte le nombre de fil à corrigé pour les pénalités plus tard self.check(penality = False) # On compte le nombre de fil à corrigé pour les pénalités plus tard
classModule["simon"].def_sequence() # Puisque le module "simon" a besoin de l'état des LEDs pour fonctionner, on l'éxécute après leur définition
def cut_wire(self, led): #coupe les cables def cut_wire(self, led): #coupe les cables
self.dico_wire[led]["WIRE"].config(command = lambda: "pass") self.dico_wire[led]["WIRE"].config(command = lambda: "pass")