Bonjour,
Si ça peut décoïncer ton problème je te propose de lire le bout de code suivant avec ses commentaires :
from random import randint
from numpy import zeros
nb_col=int(input("Combien voulez-vous de colonnes ?\n"))
nb_lig=int(input("Combien voulez-vous de lignes ?\n"))
# On dimensionne une grille remplie initialement de 0 avec :
# une ligne supplémentaire aux bords inférieur et supérieur
# et une colonne supplémentaires aux bords gauche et droit.
# On a ainsi une grille sous forme de matrice (0:nb_lig+1 , 0:nb_col+1).
# On sintéresse après uniquement aux cases (1:nb_lig , 1:nb_col).
# Ceci facilite le comptage des cases voisines contenant des cellules
# vivantes (contenant des 1) sans se préoccuper des bords de la grille
# avec des tests (if then else)
# Initialisation de la grille avec des zéros type entier
grille=zeros((nb_lig+2,nb_col+2),int)
# Initialisation aléatoire de la zone d'intérêt de la grille
for i in range(1,nb_lig+1):
for j in range(1,nb_col+1):
grille[i,j]=randint(0,1)
# Coordonnées relatives des cases voisines d'une case donnée
coord=[(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1),(1,0),(1,1)]
# Affichage d'une grille
def afficher(grille,nb_lig,nb_col):
print "\n"
for i in range(1,nb_lig+1):
for j in range(1,nb_col+1):
print grille[i,j],
print
print "\n"
# for i in range(1,nb_lig+1):
# for j in range(1,nb_col+1):
# print compter(grille,i,j),
# print
# print "\n"
# Compteur de cellules vivantes voisines
def compter(grille,i,j):
'''Retourne le nombre de cellules vivantes autour de la case (i,j)'''
compteur=0
for (i1,j1) in coord:
compteur+=grille[i+i1,j+j1]
return compteur