Cela ressemble à une description maladroite de A* :
https://fr.wikipedia.org/wiki/Algorithme_A*
Sinon, pourquoi ne pas ajouter d'autres états ? "tentative d'aller en haut", "tentative de chemin du bas", ... et si le chemin s'avère faux, tu reviens en arrière jusqu'à trouver une case validée et pars dans une autre direction.
Ou plus simplement avec l'algo de svear : si tu reviens sur une case où tu es déjà passé puisque tu as été dans une impasse, tu réinitialises toutes ces cases et prends le chemin suivant.
Es-tu sûr que ton labyrinthe a toujours une solution ? Sinon tu pourrais avoir des surprises à base de boucles infinies.
Partager