Browse Source

nombre de vivante morte et itération fonctionnel v1.22

master
philippot.m 2 days ago
parent
commit
4cf516a3ca
  1. 50
      jeu_de_la_vie.py

50
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

Loading…
Cancel
Save