Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Pathfind


glotzer - Sa 27.11.10 20:12
Titel: Pathfind
Hallo alle zusammen,

das problem ist eigentlich ganz einfach:

(- leer, #wand, o anfangspunkt, x endpunkt)

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
----o-----
#--#####--
----###-##
#---##-###
###----###
####---###
#####--###
###x---###

(edit 2: thx Gausi)

das ganze ist in feldern aufgebaut

jetzt suche ich eine möglichkeit den kürzesten weg von o nach x zu finden, ohne durch wände zu rennen. mein problem: ich hab keine ahnung wie das gehen könnte.

man wird wohl irgendwie eine schleife brauchen die sämtliche möglichkeiten durchprobiert. nur wie geht das?

danke im vorraus


Moderiert von user profile iconGausi: Quote- durch Code-Tags ersetzt. Dann klappts mit der Länge. ;-)


elundril - Sa 27.11.10 20:18

Ich glaub wenn du gesucht hättest, wärst du sicher auf den Begriff A*-Algorithmus gestoßen. (sollte für dich ideal sein)

lg elundril


glotzer - Sa 27.11.10 20:24

oho, dass klignt gut, danke!

edit: uff das sieht schwierig aus...


Delete - Sa 27.11.10 20:44

Hier ist eine Demo: http://www.michael-puff.de/Programmierung/Delphi/Demos/


glotzer - Sa 27.11.10 21:10

uhm, welche davon?


Delete - Sa 27.11.10 21:21

AStar vielleicht? :roll:


glotzer - Sa 27.11.10 21:27

lol, da hätt ich auch selbst drauf kommen können... hab nach "findway" oder "pathfind" gesucht

danke


Yogu - Sa 27.11.10 21:36

Ich hab mir die Demo nicht angeschaut, aber werfe trotzdem mal das Tutorial Pathfinding der DelpihGL [http://wiki.delphigl.com/index.php/Tutorial_Pathfinding] in den Raum. Es ist vor allem sehr anfängerfreundlich gestaltet, ich habe es damit sofort verstanden. Ist ja auch eigentlich nicht schwer.


jaenicke - So 28.11.10 02:52

Und hier noch eine ausführliche Erklärung von Daniel aus der DP:
http://www.delphipraxis.net/71684-tiefensuche-*-suche-und-das-hillclimbing.html
Leider sind die Bilder verloren gegangen, aber vielleicht hilft es ja trotzdem, auch der Anhang. ;-)


glotzer - So 28.11.10 15:09

danke :D
werd ich mir alles mal durchlesen