J'essaie donc de créer un programme de résolution de labyrinthe qui résoudrait un labyrinthe de X et de O. Ce que j'aimerais faire, c'est créer une classe de points, afin de pouvoir créer un tableau bidimensionnel de points, ce qui permettrait d'imprimer sur une page de sortie et d'implémenter la pile de manière relativement simple.
L'algorithme le plus simple de l'idée générale que j'aimerais mettre en œuvre dans le programme lui-même devrait être, selon moi, le suivant :
1) Move forward
2) Are you at a wall?
2a) If yes, turn left
3) Are you at the finish?
3a) If no, go to 1
3b) If yes, solved
Mais j'ai du mal à trouver un algorithme plus approfondi, ainsi qu'à mettre en place ma classe de points. Je sais que pour les points, je devrais avoir des coordonnées X et Y, ainsi que des getters pour les deux. Pensez-vous que j'ai besoin de plus de méthodes que ces deux-là ? Par exemple, devrais-je créer une méthode qui passe une coordonnée x et une coordonnée y comme paramètres pour que je puisse simplement les regrouper en une seule, au lieu de définir x et y individuellement ?
Voici à quoi ressemblerait un exemple de labyrinthe, dans lequel vous commencez en bas à droite et essayez de traverser jusqu'en haut à gauche, les X représentant les murs et les O les espaces ouverts du labyrinthe :
O O O O O X O
X X O X O O X
O X O O X X X
X X X O O X O
X X X X O O X
O O O O O O O
X X O X X X O