Salut,
Problème du code
Fonction est_valide (ligne 15)
Avant : if 0<i<n and 0<j<m:
Maintenant : if 0<=i<n and 0<=j<m:
L'ajout du = entre le < et le i permet à la fonction d'autoriser les nombres sur la ligne/colonne 0 à être autorisés.
Fonction voisines (lignes 40-45)
Avant :
def voisines(i, j, lab):
n = len(lab)
m = len(lab[0])
voisins = [(i,j-1), (i-1,j), (i+1,j), (i, j+1)]
voisins_valides = [x for x in voisins if est_valide(x[0], x[1], n, m)]
return [x for x in voisins_valides if lab[x[0]][x[1]] != 1 and lab[x[0]][x[1]] != 4]
Maintenant :
def voisines(self, i, j):
voisins = [(i, j-1), (i-1, j), (i+1, j), (i, j+1)]
voisins_valides = [i for i in voisins if self.est_valide(i[0], i[1])]
return [x for x in voisins_valides if lab[x[0]][x[1]] != 1 and lab[x[0]][x[1]] != 4]
Tu as rajouté les valeurs n et m dans la fonction. Cependant, ils sont inutiles puisqu'ils sont déjà défini dans la fonction est_valide(). De plus, il est impossible de les passer en paramètre de la fonction est_valide().
Le programme fonctionnant est passé en pièce jointe.
Je me doute que tu n'as pas pu comprendre grace à mes piètres explications et je m'excuse de la gène occasionné par le fait que le programme que je t'avais au préalable fourni ne fonctionnait pas correctement.
Aux modos, ne supprimez pas la réponse, je compte la compléter d'ici ce soir-demain.