Explications de ligne, Jeu de la vie
Bonjour, je suis actuellement en train de créer une simulation du jeu de la vie. Pour m'aider, j'aimerais m'inspirer, pour la flnction principale, d'un code trouver sur internet. Je comprends une partie du codenmais pas tout, j'aimerais savoir si quelqu'un pourrait l'expliquer :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| def StadeN(pa):
""" Fonction qui détermine le prochain stade de la grille Reçoit le ZoneDeJeu actuel (au stade n) qui contient l'état de toutes les cellules Renvoie le ZoneDeJeu au stade n+1 selon les règles du ZoneDeJeu de la vie """
a = len(pa[0])
nextState = [[0 for i in range(a)] for j in range(len(pa))]
for i in range(len(pa)):
for j in range(len(pa[0])):
nbvoisines = 0
for k in range(-1, 2):
for l in range(-1, 2):
if (i+k>=0 and i+k<=len(pa)-1) and (j+l>=0 and j+l<=a-1) and (k!=0 or l!=0):
if pa[i+k][j+l] == 1:
nbvoisines += 1
if pa[i][j] == 0 and nbvoisines == 3:
nextState [i][j] = 1
if pa[i][j] == 1 and (nbvoisines == 2 or nbvoisines == 3):
nextState[i][j] = 1
return nextState |
Je comprends l'idée de la fonction, mais je ne sais pas l'expliquer... (jusqu'a la 12e ligne)
Merci d'avance