|
|
@ -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 |
|
|
|