Sers Leute,
ich programmier grad eine Routenplanung. Die sogar funktioniert. :wink: Nur bin ich noch nicht so ganz zufrieden, weil mein Programm beim Berechnen der Route viel zu viele Knoten auf meiner Karte okkupiert.
Ich denk mal, dass ich irgendwo in den Untiefen des Algorithmus einen Fehler gemacht habe, den ich aber trotz längeren Suchens nicht finde.
Wenn ich also z.B. eine Route auf einer leeren (also ohne Hindernisse) Karte zwischen zwei Punkten, die acht Felder voneinander entfernt liegen, berechnen will, hat meine offene Liste 49 Elemente und meine geschlossene 101.
Nachdem mein Programm so verschwenderisch mit dem Speicher umgeht, führt das bei längeren Routen auch schon mal zu einem StackOverflowError, bzw. verlangsamt sich die Berechnung.
Ich bin dabei (größenteils) nach folgendem Tutorial vorgegangen:
http://www.policyalmanac.org/games/aStarTutorial_de.html
Eine implementierte Version (nicht meine) ist hier zu finden:
http://www.arco.in-berlin.de/astern.html
Wenn ich mein Programm und das oben erwähnte vergleiche (also die Punkte vergleichbar setze), sehe ich, das meines viel mehr Punkte zur Berechnung heranzieht, obwohl das Programm (laut Autor) nach demselben Tutorial programmiert wurde.
Mal zum Vergleich:
Auf der Website
In meinem Programm
Was die Farben betrifft:
Bei beiden Versionen: Grün -> Start, Rot -> Ziel
Website - Dunkelgrau -> Route, Hellgrau -> geschlossene Liste
Mein Programm - gelb -> Route, Grau -> geschlossene Liste, türkis -> offene Liste
Damits nicht ganz so unübersichtlich wird, gibts den Code im nächsten Post.
Schon mal im Voraus danke an alle, die mir helfen
MfG
_Zoidberg_
ich programmier grad eine Routenplanung. Die sogar funktioniert. :wink: Nur bin ich noch nicht so ganz zufrieden, weil mein Programm beim Berechnen der Route viel zu viele Knoten auf meiner Karte okkupiert.
Ich denk mal, dass ich irgendwo in den Untiefen des Algorithmus einen Fehler gemacht habe, den ich aber trotz längeren Suchens nicht finde.
Wenn ich also z.B. eine Route auf einer leeren (also ohne Hindernisse) Karte zwischen zwei Punkten, die acht Felder voneinander entfernt liegen, berechnen will, hat meine offene Liste 49 Elemente und meine geschlossene 101.
Nachdem mein Programm so verschwenderisch mit dem Speicher umgeht, führt das bei längeren Routen auch schon mal zu einem StackOverflowError, bzw. verlangsamt sich die Berechnung.
Ich bin dabei (größenteils) nach folgendem Tutorial vorgegangen:
http://www.policyalmanac.org/games/aStarTutorial_de.html
Eine implementierte Version (nicht meine) ist hier zu finden:
http://www.arco.in-berlin.de/astern.html
Wenn ich mein Programm und das oben erwähnte vergleiche (also die Punkte vergleichbar setze), sehe ich, das meines viel mehr Punkte zur Berechnung heranzieht, obwohl das Programm (laut Autor) nach demselben Tutorial programmiert wurde.
Mal zum Vergleich:
Auf der Website

In meinem Programm

Was die Farben betrifft:
Bei beiden Versionen: Grün -> Start, Rot -> Ziel
Website - Dunkelgrau -> Route, Hellgrau -> geschlossene Liste
Mein Programm - gelb -> Route, Grau -> geschlossene Liste, türkis -> offene Liste
Damits nicht ganz so unübersichtlich wird, gibts den Code im nächsten Post.
Schon mal im Voraus danke an alle, die mir helfen
MfG
_Zoidberg_