|
|
@ -50,7 +50,7 @@ class Grille: |
|
|
|
colone*self.taille_carre+self.taille_carre , ligne*self.taille_carre +self.taille_carre , |
|
|
|
fill ="white") |
|
|
|
self.lst_c[ligne].append(new_c) |
|
|
|
affiche_grille() |
|
|
|
self.affiche_grille() |
|
|
|
|
|
|
|
def affiche_grille(self): |
|
|
|
for ligne in range (len(self.grille)): |
|
|
@ -61,6 +61,43 @@ class Grille: |
|
|
|
else: |
|
|
|
zone.itemconfig(self.lst_c[ligne][col],fill ="white") |
|
|
|
self.fen.update() |
|
|
|
|
|
|
|
def change(self,coord_x,coord_y): |
|
|
|
num_colone=coord_x//self.taille_carré |
|
|
|
num_ligne=coord_y//self.taille_carré |
|
|
|
if 0<event.x<1246 and 0<event.y<795: |
|
|
|
if self.grille[num_ligne][num_colone]==0: |
|
|
|
self.grille[num_ligne][num_colone]=1 |
|
|
|
elif self.grille[num_ligne][num_colone]==1: |
|
|
|
self.grille[num_ligne][num_colone]=0 |
|
|
|
self.affiche_grille () |
|
|
|
|
|
|
|
def gen_suiv(self): |
|
|
|
copy_grille=deepcopy(grille) |
|
|
|
self.lst_grille.append(copy_grille) |
|
|
|
vie=0 |
|
|
|
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 |
|
|
|
elif copy_grille[ligne][col]==1 and (vie<2 or vie>3): |
|
|
|
self.grille[ligne][col]=0 |
|
|
|
elif copy_grille[ligne][col]==0 and vie==3: |
|
|
|
self.grille[ligne][col]=1 |
|
|
|
vie=0 |
|
|
|
affiche_grille () |
|
|
|
|
|
|
|
def gen_prev(self): |
|
|
|
self.grille=deepcopy(self.lst_grille[len(self.lst_grille)-1]) |
|
|
|
self.lst_grille.pop(len(self.lst_grille)-1) |
|
|
|
affiche_grille () |
|
|
|
|
|
|
|
|
|
|
|
########Fonction interface utilisateur########### |
|
|
|
def bouton_grille(): |
|
|
@ -69,6 +106,9 @@ def bouton_grille(): |
|
|
|
nb_ligne=nb_ligne_choisi.get() |
|
|
|
nb_colonne=nb_colonne_choisi.get() |
|
|
|
creer_grille() |
|
|
|
grille=Grille(nb_ligne_choisi.get(), nb_colonne_choisi.get(), |
|
|
|
0, nb_ligne*nb_colonne, |
|
|
|
zone, fenetre) |
|
|
|
|
|
|
|
def creer_grille(): |
|
|
|
global grille |
|
|
@ -221,6 +261,7 @@ choix_col.grid(row=11,column=3) |
|
|
|
|
|
|
|
bout_g=Button(text="Créer la grille",command= bouton_grille) |
|
|
|
bout_g.grid(row=11,column=2) |
|
|
|
|
|
|
|
################Génération################## |
|
|
|
suivant=Button(text="Prochaine génération",command= gen_suiv) |
|
|
|
suivant.grid(row=10,column=4) |
|
|
@ -233,6 +274,7 @@ gen_continue.grid(row=10,column=5) |
|
|
|
|
|
|
|
stop=Button(text="Stop",command=stop) |
|
|
|
stop.grid(row=11,column=5) |
|
|
|
|
|
|
|
################Système sauvegarde########## |
|
|
|
save=Button(text="Sauvegarder",command=save) |
|
|
|
save.grid(row=10,column=6) |
|
|
|