Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Labyrinth (https://www.delphipraxis.net/160702-labyrinth.html)

Saminem 26. Mai 2011 21:19

Labyrinth
 
Moin Leute
stelle mal seit langem wieder mal ne Frage.
HAben dies mal in Informatik die Aufgabe bekommen ein Labyrinth zu zeichnen
und dieses Labyrinth soll dann autonom gelöst werden.
Hier zu hat uns unser Lehrer erklärt wie wir einen stack programmieren.
Bei mir gibt es aber schon beim zeichnen eines Labyrinthes ein Problem hier mal der quellecode.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var n,hoehe,breite,hoehe1,breite1 :integer;
begin
  hoehe1:= trunc(image1.height / (strtoint(edit1.Text)));
  breite1:= trunc(image1.width / strtoint(edit1.Text));
  hoehe:= trunc(image1.height / (strtoint(edit1.Text)));
  breite:= trunc(image1.width / strtoint(edit1.Text));
  For n:=0 to strtoint(edit1.Text) do
  begin
  image1.Canvas.Rectangle(breite,hoehe,(image1.width - breite),(image1.height - hoehe));
  breite:=breite1 +  breite;
  hoehe:=hoehe1 + hoehe;
  end;

end;
Das Problem ist einfach das er nicht zeichnet liegt es villeicht an der for schleife und wäre hier eine repeat schleife besser
Danke schon mal im vorraus

Sir Rufo 26. Mai 2011 22:24

AW: Labyrinth
 
Auch wenn es neu für dich ist, es gibt hier eine Suchfunktion (und gerade das Labyrinth-Thema wurde hier schon x-mal behandelt)

Hier im Forum suchenLabyrinth Hier im Forum suchenLabyrinth erstellen

Gibt zum Beispiel diesen Treffer

himitsu 26. Mai 2011 23:04

AW: Labyrinth
 
Wo soll hier ein Stack versteckt sein?

Und die Art der Schleife ist vollkommen egal, also egal ob For, While oder Repeat ... das macht keinen Unterschied
wenn es eigentlich nur die Berechnungen und Befehle innerhalb der Schleife geht.

Tipp: Debuggen
Man lege sich einen Haltepunkt an den Anfang der Schleife und wärend man die Schleife Befehl für Befehl durchgeht, schaut man sich die Werte der Variablen und Berechnungen an und vergleicht diese mit den Werten, welche man an dieser Stelle erwarten würde.


Wo soll hier eigentlich ein Labyrinth versteckt sein?

Ich seh nur Rechtecke, welche ineinander gezeichnet werden und das zuoft.

Du hast doch bestimmt vergessen den Brush zu entfernen?
Also die Rechtecke sind doch bestimmt "gefüllt"?
Wenn ja dann werden anfangs Rechtecke ineinander gemalt und ab der hälfte fangen diese an sich wieder gegenseitig zu übermalen, bis das Letze alles wieder gelöscht/übermalt hat.

Füge mal diese 2 Zeilen ein und schau ob etwas und was passiert.
Delphi-Quellcode:
hoehe:=hoehe1 + hoehe;
//
Application.ProcessMessages;
Sleep(1000);
//
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.

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