From a2cb5b0a5137367380983569a64792b9f2e08ec7 Mon Sep 17 00:00:00 2001 From: "philippot.m" <> Date: Sun, 30 Mar 2025 18:47:04 +0200 Subject: [PATCH] OPTIMISATION FINI! v1.2 classe grille faite --- jeu_de_la_vie.py | 105 +++++++++++++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 40 deletions(-) diff --git a/jeu_de_la_vie.py b/jeu_de_la_vie.py index 8d3a14a..d149d7f 100644 --- a/jeu_de_la_vie.py +++ b/jeu_de_la_vie.py @@ -17,7 +17,7 @@ class Grille: self.can=uncanva self.fen=unfenetre self.iteration=uniteration - + def creer_grille(self): self.grille=[] for ligne in range(0,self.ligne): @@ -48,12 +48,17 @@ class Grille: for ligne in range(len(self.grille)): for colone in range(len(self.grille[0])): - new_c=self.can.create_rectangle( colone *self.taille_carre , ligne *self.taille_carre , - colone*self.taille_carre+self.taille_carre , ligne*self.taille_carre +self.taille_carre , - fill ="white") - self.lst_c[ligne].append(new_c) - self.affiche_grille() - + if self.grille [ligne][colone] == 1: + new_c=self.can.create_rectangle( colone *self.taille_carre , ligne *self.taille_carre , + colone*self.taille_carre+self.taille_carre , ligne*self.taille_carre +self.taille_carre , + fill ="black") + self.lst_c[ligne].append(new_c) + else: + new_c=self.can.create_rectangle( colone *self.taille_carre , ligne *self.taille_carre , + colone*self.taille_carre+self.taille_carre , ligne*self.taille_carre +self.taille_carre , + fill ="white") + self.lst_c[ligne].append(new_c) + self.fen.update() def affiche_grille(self): for ligne in range (len(self.grille)): for col in range (len(self.grille[0])): @@ -67,20 +72,27 @@ class Grille: self.morte=self.morte+1 nb_morte_lab.set("Nombre de cellule morte:"+str(self.morte)) self.fen.update() + def compte(self): for ligne in range (len(self.grille)): for col in range (len(self.grille[0])): pass - def change(self,coord_x,coord_y): - num_colone=coord_x//self.taille_carre - num_ligne=coord_y//self.taille_carre - if 03): - self.grille[ligne+cel_l_autour][lst_vivante_dans_colonne[l_ac][col]+ cel_l_autour ]=0 - elif copy_grille[ligne+cel_l_autour][lst_vivante_dans_colonne[l_ac][col]+ cel_l_autour]==0 and vie==3: - self.grille[ligne+cel_l_autour][lst_vivante_dans_colonne[l_ac][col]+ cel_l_autour ]=1 - vie=0 - l_ac=l_ac+1 + for ligne in range (0,len(self.grille)): + for col in range (0,len(self.grille[0])): + for l_contour in range(-1,2): + for col_contour in range(-1,2): + if l_contour==0 and col_contour==0: + pass + elif copy_grille[(ligne+l_contour)%len(self.grille)][(col+col_contour)%len(self.grille[0])]==1: + vie=vie+1 + if copy_grille[ligne][col]==1 and (vie==2 or vie==3): + self.grille[ligne][col]=1 + self.can.itemconfig(self.lst_c[ligne][col],fill ="black") + self.fen.update() + + elif copy_grille[ligne][col]==1 and (vie<2 or vie>3): + self.grille[ligne][col]=0 + self.can.itemconfig(self.lst_c[ligne][col],fill ="white") + self.fen.update() + + elif copy_grille[ligne][col]==0 and vie==3: + self.grille[ligne][col]=1 + self.can.itemconfig(self.lst_c[ligne][col],fill ="black") + self.fen.update() + vie=0 + self.iteration=self.iteration+1 - self.affiche_grille () def gen_prev(self): self.grille=deepcopy(self.lst_grille[len(self.lst_grille)-1]) @@ -135,7 +149,18 @@ def bouton_grille(): grille.creer_carre(nb_ligne_choisi.get(),nb_colonne_choisi.get()) def change(event): - grille.change(event.x,event.y) + num_colone=event.x//grille.taille_carre + num_ligne=event.y//grille.taille_carre + if 0