Forum: Multimedia
Delphi
by jfheins,
22. Apr 2010
So wie ich es verstanden habe: Falsch.
0. Das grüne Feld kommt in die geschlossene Liste
1. Zuerst kommen Felder 1 und 3 (3 ist das über dem grünen) in die offene Liste
2. Die offene Liste wird dann sortiert nach dem f-Wert. (Feld 1 an erster Stelle weil geringerer f-Wert als 3)
3. Das erste Element der offenen Liste wird herausgenommen und in die geschlossenen Liste getan. (Hier Feld 1)...
Forum: Multimedia
Delphi
by jfheins,
21. Apr 2010
Also für die Entfernung hätte ich auch noch eine Idee:
function Convert(a: TPoint): TPoint;
begin // Konvertiert die Punkte in ein schiefes, gerade Koordinatensystem
Result.X := a.X - 1;
Result.Y := a.Y - 1 - (a.X - 1) div 2;
end;
function GetH(APlayer, ATarget: TPoint): Integer;
Forum: Multimedia
Delphi
by jfheins,
21. Apr 2010
Wie sind die Felder angeordnet?
Hast du ein angepasstes Koordinatensystem?
Wie adressierst du die Felder?
Forum: Multimedia
Delphi
by jfheins,
21. Apr 2010
Ich hab da noch 2 Themen in petto, wo es auch um ein hexagonales Raster geht, vielleicht helfen die dir weiter ;)
http://www.delphipraxis.net/internal_redirect.php?t=175132
http://www.delphi-forum.de/viewtopic.php?t=98529
Und es gibt hier ja auch ein Pathfinding-Tut: http://www.delphipraxis.net/internal_redirect.php?t=85844
Im Prinzip hast du doch das eine Mal vier Nachbarn, und das andere...