Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Backtracking - Wege aus dem Labyrinth [Source online] (https://www.delphipraxis.net/108486-backtracking-wege-aus-dem-labyrinth-%5Bsource-online%5D.html)

Flips 14. Feb 2008 21:51

Re: Backtracking - Wege aus dem Labyrinth
 
Sehr gut, danke dir!!!! :thumb:

STS301 15. Feb 2008 14:13

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
um alle aufmerksam zu machen

DER SOURCE IST DA!!! *freu*

DP-Maintenance 15. Feb 2008 14:14

DP-Maintenance
 
Dieses Thema wurde von "Dax" von "Freeware" nach "Open-Source" verschoben.

Flips 15. Feb 2008 16:23

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
So, hab mal die aktuelle Source (mit der ich die Präsentation gehalten habe) online gestellt.
Sollte evtl. noch jemand Interesse an der Präsentation haben (dadurch wird die Funktionsweise noch klarer), kann ich diese auch hochladen.

jmit 15. Feb 2008 20:54

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
Hallo,

wirklich super, sehr gutes Programm. :thumb: :thumb:

Was mich noch interessieren würde: Wie erstelle ich ein neues Labyrinth als Bitmap?

Gruß Jörg

Flips 15. Feb 2008 21:20

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
Danke :-)

Also ich weiß von Gimp, das es Labyrinte rendern kann.
Allerdings benötigen die ein wenig Nachbearbeitung, da die Ränder nicht schwarz sind und das ganze nicht komplett durchgängig ist.
Aber im Prinzip reicht schon Paint.
Vielleicht schreib bald auch mal ein Programm, welches Labyrinte erstellen kann :-)

busybyte 15. Feb 2008 22:22

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
Liste der Anhänge anzeigen (Anzahl: 1)
Da kann ich mich nur anschliessen,sehr gute Arbeit und vielen Dank für den OpenSource.
Bugbericht:

Delphi-Quellcode:
procedure TForm1.FindeWeg(x,y,i:integer);
begin
.
.
.
//alt
//Delay(StrToint(edtDelay.Text));
//neu
Delay(StrTointdef(edtDelay.Text,1));

Im Anhang noch ein Bitmap das auch funktioniert,mittelgroß ohne Ausgang

busybyte 16. Feb 2008 00:55

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
Bugreport:
Wenn in eine laufende Wegsuche ein neues ungültiges Labyrinth geladen wurde
kam es zu einer Zugriffsverletzung,ein erster Lösungsansatz:

Delphi-Quellcode:
Procedure TForm1.FindeWeg(x,y,i:integer);
begin
//Wenn Ausgang gefunden / Programm beendet -> Breche alle Rekursionstiefen ab
if gefunden or Application.Terminated then
    Exit;

//Schritte insgesamt
inc(c);
//Rekursionstiefe
inc(i);

//Wenn Verzögerung an: Exakte Ausgabe mit Delay
if Form1.rbtnVz.Checked then
  begin
    Ausgabe(i, x, y);
    Delay(StrTointdef(edtDelay.Text,1));
  end
//Im Speed-Modus nur alle 50000 Schritte malen -> sonst speed-modus zu langsam
else
 if (c mod 50000) = 0 then
   Ausgabe(i, x, y);

//EDIT
while Length(Feld)<1 do
begin
gefunden:=True;
exit;
end;
//

Feld[x,y] := 2;
letzte.X := X;
letzte.Y := Y;

if (Ziel.X = X) and (Ziel.Y = Y) then
  begin
    MessageDlg('Ziel gefunden!',mtInformation,[mbOK],0);
    Ausgabe(i,x,y);
    sg.Invalidate;
    gefunden := true;
    Exit;
  end
else
  begin
    feld[X,Y] := 3;
//Edit if Feld[x+1,y] = 1 then
    if not gefunden and (Feld[x+1,y] = 1) then
      FindeWeg(x+1,y,i);

//Edit if Feld[x,y+1] = 1 then
    if not gefunden and (Feld[x,y+1] = 1) then
      FindeWeg(x,y+1,i);

//Edit if Feld[x-1,y] = 1 then
    if not gefunden and (Feld[x-1,y] = 1) then
      FindeWeg(x-1,y,i);

//Edit   if Feld[x,y-1] = 1 then
    if not gefunden and (Feld[x,y-1] = 1) then
      FindeWeg(x,y-1,i);

    if not gefunden then
      feld[X,Y] := 2;
    if (i = 1) and not gefunden then
      begin
        Fehler(3,fFehler);
        sg.Invalidate;
        Ausgabe(i,x,y);
        Application.ProcessMessages;
      end;
  end;
end;

Flips 16. Feb 2008 16:32

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
Danke, den ersten Post hab ich übernommen (kannte den Befehl noch gar nicht :-) ),
auch danke für den 2. Post und die Möglichkeit das zu lösen.
Da ich das Programm aber noch morgen meinem Lehrer schicke muss, mache ich es mir etwas einfacher und deaktiviere einfach den "Laden" Button während eine Wegsuche läuft ;-)

[Edit]Das Beispielbild mit der Erde ist cool, sowas hatte ich noch gar nicht getestet :-D[/Edit]

xZise 16. Feb 2008 17:36

Re: Backtracking - Wege aus dem Labyrinth [Source online]
 
Eine Frage: Wodurch sind die Start/Ziel Koordinaten definiert?

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz