Problème TypeError: 'int'

Fermé
Utilisateur anonyme - 26 juin 2013 à 21:07
nar6du14 Messages postés 459 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 7 décembre 2013 - 27 juin 2013 à 02:17
Bonjour,
J'ai un problème avec mon code sur un automate cellulaire, j'ai essayer d'inserer la fonction:
  for i, j in ((i-1, j), (i, j-1), (i+1, j+1), (i-1, j-1), \
                 (i+1, j), (i, j+1), (i+1, j-1), (i-1, j+1)):
                if grid[i%N][j%N]==0:
                    count += 1
            return count

dans :
from random import randrange
import random
from copy import deepcopy


def display(grid):
    for i in range(N):
        for j in range(N):
            if grid[i][j]==0:
                print("*",end="")
            elif grid[i][j]==1:
                print(".",end="")
            else:
                print("#",end="")
        print()

def init_state(N):
    grid = [ [ randrange(3) for _ in range(N) ] for _ in range(N) ]
    
    if N%2 == 0:
        grid[int(N/2)][int(N/2)] = 1
    else:
        grid[int(N/2 + 1)][int(N/2) + 1] = 1

    return grid


def next_grid(grid,N):
    new_grid = deepcopy(grid)
    count = 0
    for i in range(N):
        for j in range(N):
            for i, j in ((i-1, j), (i, j-1), (i+1, j+1), (i-1, j-1), \
                 (i+1, j), (i, j+1), (i+1, j-1), (i-1, j+1)):
                if grid[i%N][j%N]==0:
                    count += 1
            return count

            if grid[i][j] == 0:
                new_grid[i][j] = 1
            elif grid[i][j] == 1:
                new_grid[i][j] = 2
            elif grid[i][j] == 2 and count == 2:
                new_grid[i][j] = 0
    grid[:] = new_grid
    return new_grid

#programme#
N=11
A=init_state(N)

display(A)
for t in range(1,6):
    B= next_grid(A,N)
    print("étape n°",t)
    display(B)

Mais je comprend pas d'où vient le problème de type. Mais le problème vient de display(B). et j'ai l'erreur:
    if grid[i][j]==0:
TypeError: 'int' object is not subscriptable

Pouvez-vous m'aider car je sait pas d'où sa peut venir.

1 réponse

nar6du14 Messages postés 459 Date d'inscription dimanche 27 décembre 2009 Statut Membre Dernière intervention 7 décembre 2013 64
27 juin 2013 à 02:17
ton premier for n'a aucun sens désolé, faut changer, ça tu ne peux pas prendre i dans un ensemble de valeur dépendantes de i c'est un peut faire du n'importe quoi