DGL-Luke hat
hier zusammen mit
ichbins eine Funktion geschrieben mit deren Hilfe man eine rechteckigen Spirale durchlaufen kann.
Was Pathfinding ist kann man auf dieser (aus dem Englischen übersetzten) Seite finden:
A* Pathfinding für Anfänger
Hier der Code:
Delphi-Quellcode:
type PArray = array of TPoint;
function spirale(abstand,count,startstep:integer;startpunkt:tpoint;drehsinnnachrechts:boolean):PArray;
var
richtung,i,step:integer;
actpos:tpoint;
begin
setlength(result,count);
richtung:=1;
actpos:=startpunkt;
result[1]:=actpos;
step:=startstep;
for i:=1 to count-1 do begin
case richtung of
1: actpos.x:=actpos.x+step;
2: actpos.y:=actpos.y+step;
3: actpos.x:=actpos.x-step;
4: actpos.y:=actpos.y-step;
end;
step:=step+abstand;
if drehsinnnachrechts then
begin
richtung:=richtung+1;
if richtung=5 then richtung:=1;
end else begin
richtung:=richtung-1;
if richtung=0 then richtung:=4;
end;
result[i]:=actpos;
end;
end;
end;
HTH!
MfG Florian
[edit=Chakotay1308]Klassifizierung. Mfg, Chakotay1308[/edit]