From 4cf516a3caa1d989e674109e6c9d85df56c29fbd Mon Sep 17 00:00:00 2001 From: "philippot.m" <> Date: Wed, 2 Apr 2025 22:04:16 +0200 Subject: [PATCH] =?UTF-8?q?nombre=20de=20vivante=20morte=20et=20it=C3=A9ra?= =?UTF-8?q?tion=20fonctionnel=20v1.22?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jeu_de_la_vie.py | 50 +++++++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/jeu_de_la_vie.py b/jeu_de_la_vie.py index 61a7dd7..9965409 100644 --- a/jeu_de_la_vie.py +++ b/jeu_de_la_vie.py @@ -32,6 +32,7 @@ class Grille: for colonne in range(0,self.colonne): self.grille[ligne].append(0) + def detruire_ancien_carre(self): for detruire_l in range(0,len(self.lst_c)): for detruire_col in range(0,len(self.lst_c[0])): @@ -39,6 +40,9 @@ class Grille: def creer_carre(self,nb_ligne,nb_col): self.detruire_ancien_carre() + self.iteration=0 + self.vivante=0 + self.morte=0 self.ligne=nb_ligne self.colone=nb_col ###############création_lst_carré########## @@ -60,19 +64,27 @@ class Grille: colone*self.taille_carre+self.taille_carre , ligne*self.taille_carre +self.taille_carre , fill ="black") self.lst_c[ligne].append(new_c) + self.vivante=self.vivante+1 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.morte=self.morte+1 + nb_morte_lab.set("Nombre de cellule morte:"+str(self.morte)) + nb_vivante_lab.set("Nombre de cellule vivante:"+str(self.vivante)) + nb_it_lab.set("Nombre d'itération:"+str(self.iteration)) self.fen.update() def affiche_grille(self): + self.vivante=0 + self.morte=0 for ligne in range (len(self.grille)): for col in range (len(self.grille[0])): if self.grille [ligne][col] == 1: self.can.itemconfig(self.lst_c[ligne][col],fill ="black") self.vivante=self.vivante+1 + nb_vivante_lab.set("Nombre de cellule vivante:"+str(self.vivante)) self.fen.update() else: @@ -80,24 +92,11 @@ 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 gen_suiv(self): copy_grille=deepcopy(self.grille) self.lst_grille.append(copy_grille) - lst_vivante_dans_ligne=[] - lst_vivante_dans_colonne=[] - for ligne in range(0,len(self.grille)): - if self.grille[ligne].count(1)>0: - lst_vivante_dans_ligne.append(ligne) - lst_vivante_dans_colonne.append([]) - for index, etat in enumerate(self.grille[ligne]): - if etat==1: - lst_vivante_dans_colonne[len(lst_vivante_dans_colonne)-1].append(index) + vie=0 for ligne in range (0,len(self.grille)): for col in range (0,len(self.grille[0])): @@ -107,24 +106,27 @@ class Grille: 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): + if 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.vivante=self.vivante-1 + self.morte=self.morte+1 + nb_morte_lab.set("Nombre de cellule morte:"+str(self.morte)) + nb_vivante_lab.set("Nombre de cellule vivante:"+str(self.vivante)) 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.vivante=self.vivante+1 + self.morte=self.morte-1 + nb_morte_lab.set("Nombre de cellule morte:"+str(self.morte)) + nb_vivante_lab.set("Nombre de cellule vivante:"+str(self.vivante)) self.fen.update() vie=0 self.iteration=self.iteration+1 - print(self.iteration) nb_it_lab.set("Nombre d'itération:"+str(self.iteration)) @@ -151,11 +153,18 @@ def change(event): if grille.grille[num_ligne][num_colone]==0: grille.grille[num_ligne][num_colone]=1 zone.itemconfig(grille.lst_c[num_ligne][num_colone],fill ="black") + grille.vivante=grille.vivante+1 + grille.morte=grille.morte-1 + nb_morte_lab.set("Nombre de cellule morte:"+str(grille.morte)) + nb_vivante_lab.set("Nombre de cellule vivante:"+str(grille.vivante)) fenetre.update() elif grille.grille[num_ligne][num_colone]==1: grille.grille[num_ligne][num_colone]=0 + grille.vivante=grille.vivante-1 + grille.morte=grille.morte+1 zone.itemconfig(grille.lst_c[num_ligne][num_colone],fill ="white") + fenetre.update() def taille_can(): zone.config(height=new_height.get(),width=new_width.get()) @@ -173,6 +182,7 @@ def gen_suiv(): def gen_prev(): grille.gen_prev() + def gen_cont(): global f_cont