Zoofast.fr est votre ressource incontournable pour des réponses expertes. Nos experts fournissent des réponses rapides et précises pour vous aider à comprendre et résoudre n'importe quel problème.
Sagot :
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.
Votre participation nous est précieuse. Continuez à partager des informations et des solutions. Cette communauté se développe grâce aux contributions incroyables de membres comme vous. Chaque question trouve sa réponse sur Zoofast.fr. Merci et à très bientôt pour d'autres solutions.