Registriert seit: 11. Apr 2003
Ort: Lübeck
213 Beiträge
Delphi 2006 Enterprise
|
Re: A* Pathfinding
23. Nov 2005, 15:53
hmm
tja die performance...
also ich würde das "spiel"-feld einmal komplett vorberechnen...
Soll heißen ein array anlegen, mit den daten die du schon hast:
z.b. x & y kooerdinate, ob begehbar oder nicht usw.
in das array schickst du dann die rotine rein.
Am besten kann man dann wohl mit nem pointer auf die einzelnden felder zugreifen. (schönn flink)
...
Ich persönlich würde es weitestgehend vermeiden zur berechnung visuelle komponenten zu benuzten... d.h. ein treeView ist zwar ganz hübsch und vielleicht auch bunt. Aber jedes ändern in dem teil kostet verdammt viel zeit. (Immer wieder neu zeichnen usw.)
Also am besten alles offscreen machen und dann das fertige anzeigen...
Da das ganze ja an sich gesehen nicht viel tun muss sollte das recht flink sein.
Was man auch gut einbauen kann, ist beim vergleich der kosten der felder quicksort zu benutzen.
Erst die felder raus schmeißen, die nicht mehr in frage kommen...
Blockiert oder ned... Kommt man von dort... bzw war man schon mal da...
dann dieses kleine pointer array mit den potenziellen kandidaten, sofern es einen gibt, per quicksort durchrattern...
Das oberste abschöpfen, weil der ja dann der mit den niedrigsten kosten wäre...
Den start-pointer von oben wieder verbiegen (auf das neue "ausgangsfeld") und das ganze dann wieder von neuem...
sollte also an sich nicht soo zeit aufwendig sein...
habe das zwar noch nie gebaut...
aber ist glaube ich recht performant zu lösen...
Ich hoffe meine paar stichworte helfen dir ein bissel weiter...
vielleicht fehlt hier und da mal ein verb... bin gerade zu faul darüber nach zu denken... ^^
cya
Corelgott
wer Rächtschraibfehler findet daaf sie behalten...
|