Bonjour
J'essaye de coder un p'tit jeu de la vie en Python. Pour commencer j'ai décidé d'implémenter une petite version minimaliste sur une grille de 3*3 juste pour me familiariser avec le concept. J'ai respecté les règles énoncés ici : http://fr.wikipedia.org/wiki/Jeu_de_la_vie#R.C3.A8gles et créé deux grilles (une désignant l'instant T et l'autre l'instant T-1) de la même forme que celle énoncée dans le wiki:
xxx
ooo
xxx
Résultat voulu :
xox
xox
xox
Et ainsi de suite....
(x=morte et o=vivante)
Sauf que le résultat n'est pas du tout celui espéré.
Voici mon code:
Voici ce que j'obtiens au bout des 4 itérations :Code:from copy import deepcopy import time grille=[ [0,0,0], [1,1,1], [0,0,0], ] grilleAvant=[ [0,0,0], [1,1,1], [0,0,0], ] def cells(L,a,b): compteur=0 for x in range(a-1,a+2): for y in range(b-1,b+2): if ((0<=x<=2) and (0<=y<=2)): if L[x][y] and (x!=a and y!=b): compteur+=1 return compteur def affich(L): for i in L: print(i) print() for x in range(4): affich(grille) for i in range(3): for j in range(3): if grilleAvant[i][j]: if not(cells(grilleAvant,i,j)==2 or cells(grilleAvant,i,j)==3): grille[i][j]=0 elif not grilleAvant[i][j]: if cells(grilleAvant,i,j)==3: grille[i][j]=1 grilleAvant=deepcopy(grille) time.sleep(2)
[0, 0, 0]
[1, 1, 1]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
De l'aide svp ? Car ça me frustre de bloquer sur un truc si simple...
-----