Implementierung von A * Pathfinding in einem 2D-Array

8

Ich bin dabei, eine 2D-Kachelkarte zu erstellen, und ich versuche nun, A * Pfadfindung zu implementieren. Ich folge dem Wikipedia-Pseudocode für A * .

Bis auf ein seltsames Verhalten in den Entscheidungen des Algorithmus läuft alles recht gut.

Mein Code bisher:

%Vor%

Das Ergebnis der Ausführung dieses Codes:

Blau ist der Knoten aus der offenen Liste und grün ist der Pfad, der zum Zielknoten gewählt wurde.

LÖSUNG:

%Vor%     
Mattias 02.11.2013, 19:29
quelle

1 Antwort

4

Zuerst sollten Ihre offenen Knoten in absteigender Reihenfolge sortiert sein, während in Ihrem Code keine Reihenfolge angegeben ist. Sie berechnen die Entfernung (g) und die Heuristik (h), verwenden sie aber nie wirklich. Sie sollten geordneter Container anstelle von Listen verwenden (da Sortierlisten in jeder Iteration nicht effizient sind)

Zweitens speichern Sie den heuristischen Wert im Knoten nicht als

%Vor%

sollte

sein %Vor%     
lejlot 04.11.2013, 11:57
quelle