Bonjour,
Pour résoudre le problème on pourra utiliser :
- une matrice O permettant d'identifier les obstacles,
- une matrice C indiquant si la cellule a été déjà traitée,
- une matrice P (prédecesseur) indiquant les coordonées en X et Y de la case précédente,
- une file d'attente avec les coordonnées X et Y des cellules à traiter (les cellules non traitées au voisinage de la cellule en cours s'empilent).
Le traitement commence avec dans la file d'attente la cellule de départ et se termine lorsqu'on tombe, parmi les voisins de la cellule à traiter, sur la cellule de fin (ou lorsque la file d'attente est vide ==> pas de solution).
A la fin, on obtiendra le meilleur chemin et sa longueur en faisant le parcours en partant de l'arrivée via la matrice P des prédecesseurs.
Partager