Je travaille sur un projet que je dois traverser un labyrinthe en utilisant la règle de la main gauche et en fonction des intersections du programme vient je dois créer un noeud pour se connecter à un graphique que je vais ensuite déterminer le chemin le plus court. Le but est que le programme parcourt le labyrinthe puis ferme le programme et lit à partir d'un fichier qui contient le graphique et détermine le chemin le plus court vers la fin. ce que j'ai fait c'est que je peux traverser le labyrinthe en utilisant la règle de la main gauche. ce que je pense à faire est de créer un nœud quand je trouve l'intersection et là après chaque mouvement du programme j'augmente le coût de ce chemin par un. sur une note de côté avez-vous besoin d'avoir une matrice d'adjacence lorsque vous utilisez l'algorithme de dijkstra?chemin le plus court à travers un labyrinthe
Répondre
Essayez quelque chose comme ça, il devrait fonctionner:
0 - create an empty "solution path" stack of location objects. 1 - if current position is maze exit, return "solution path" stack. 2 - wall in front? turn left and repeat 2, else continue to 3. 3 - if current position is at top of "solution path" stack, pop it off of the stack else push it onto the stack 4 - move forward.
Lorsque vous vérifiez le haut de la pile pour la position actuelle, vous pourriez avoir besoin de vérifier l'élément juste avant la toute dernière, depuis le dernier sera la position que vous venez de quitter.
wow c'est en fait une bonne idée que vous n'avez pas besoin d'utiliser un graphique pour trouver le chemin le plus court. – Zieklecknerizer
Étape 2 n'est pas tout à fait raison, devrait tourner à gauche, même si vous pouvez aller tout droit ... tourner à gauche ou aller à droite ou à droite et pousser, ou revenir et pop ... dois courir, pas le temps de le mettre à jour :) –
oui l'idée que vous avez des travaux, malheureusement, je dois trouver le chemin le plus court en utilisant des graphiques et algorithmes diijkstas ... des idées comment faire que je suis un peu à perte. J'ai pensé que peut-être je pourrais mettre en place le graphique en ajoutant un bord chaque fois que le programme arrive à une intersection. puis chaque fois que vous vous déplacez entre là et une autre intersection. mais ça ne marche pas ... peut-être que je ne l'implémente pas correctement ou quelque chose. (pas très habile graphiquement haha) ill ajouter du code pour montrer ce que je fais si je fais des progrès! – Zieklecknerizer
- 1. Ajustement à un algorithme de chemin le plus court
- 2. Le plus court chemin pour inverser Propriétés
- 3. Chemin le plus court (nombre de nœuds le plus court) pour un graphique non pondéré
- 4. Carte personnalisée Chemin le plus court
- 5. Chemin total le plus court parmi l'ensemble des Latitude/Longitudes
- 6. Le plus court chemin dans le graphique acyclique dirigé
- 7. Code Golf: Résoudre un labyrinthe
- 8. Le plus court chemin pour se tourner vers une cible?
- 9. Rend le plus court chemin dans les transitions d'état
- 10. Guidage d'un robot à travers un chemin
- 11. Un seul chemin le plus court d'un graphe acyclique non orienté déconnecté
- 12. chemin court GTK PHP
- 13. rechercher tous les chemins et le chemin le plus court pour un graphique - Prolog
- 14. Performance de l'algorithme du plus court chemin dans l'API JUNG
- 15. Performance de l'algorithme du plus court chemin de Bellman-Ford
- 16. modification de l'algorithme de plus court chemin (route à partir d'un noeud à lui-même)
- 17. Calculer le chemin le plus court pour tourner, droite ou gauche?
- 18. Comment trouver le chemin le plus court qui couvre tous les nœuds d'un graphe cyclique dirigé?
- 19. le plus court condensé d'une chaîne
- 20. Comment rendre un Makefile plus court?
- 21. Comment le rendre plus court (Pythonic)?
- 22. Meilleur (et le plus court) C# book
- 23. est-il un moyen plus court de le faire?
- 24. Comment minimiser le coût total de l'arborescence du plus court chemin
- 25. A * heuristique: le plus court chemin passant une fois en plusieurs points
- 26. PHP: Faire plus propre et le code plus court
- 27. Comment puis-je trouver le chemin le plus court dans un graphique, en ajoutant le moins de nouveaux nœuds?
- 28. Problème de chemin le plus court dijsktra avec des drapeaux d'arc
- 29. Retour chemin le plus court avec la largeur-première recherche dans prolog
- 30. Le moyen le plus rapide/le plus court de construire un arbre unique en Ruby?
Vous pouvez utiliser une matrice d'adjacence ou une liste de tableaux (liste d'adjacence). Je ne sais pas ce que vous vouliez dire par la règle de gauche, mais je suppose que l'algorithme de dijkstra fera l'affaire. –
Tous les labyrinthes ne peuvent pas être résolus par la règle de la main gauche. Thésée avait tort. – Borealid
@Borealid: Tous les "labyrinthes parfaits" peuvent; Je suppose que c'est ce à quoi l'OP fait référence ... –