Das Backtracking-Bsp ohne DelphiX versteh ich ja. Wie alles funktionier, etc. Hab das aber nun versucht in DelphiX einzubauen und es geht, aber nicht immer und machmal hängt sich das Programm auf. Manchmal geht er irgenwie, wie man eigentlich nicht gehen kann, etc.
Hab die File mal hier rangehent und denn Quellcode tu ich auch hier dazu (halt nur das wichtigste):
Delphi-Quellcode:
procedure Markieren(Code,i,k:Integer);
begin
Player.X:=i*32;
Player.Y:=k*32;
Laby[i,k]:=Code;
with THind.Create(Form1.DXSpriteEngine1.Engine) do
begin
Image:=Form1.DXImageList1.Items[1];
x:=i*32;
y:=k*32;
end;
end;
procedure Weg_Suchen(i,k: Integer);
begin
case Laby[i,k] of
Spur: begin end;
Wand: begin end;
Aus: begin
Markieren(Aus,i,k);
AusFlag:=true;
end;
Frei: begin
if AusFlag then Exit;
Laby[i,k]:=Spur; Markieren(Spur,i,k);
if i+1<=15 then Weg_Suchen(i+1,k);
if k+1<=13 then Weg_Suchen(i,k+1);
if i-1>=0 then Weg_Suchen(i-1,k);
if k-1>=0 then Weg_Suchen(i,k-1);
If Not AusFlag then begin
Laby[i,k]:=Frei; Markieren(Frei,i,k);
end;
end;
end;
end;
Das wärs. Was ist daran falsch bzw noch nicht ganz korekt??