Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Turm von Hanoi (https://www.delphipraxis.net/30694-turm-von-hanoi.html)

Matze 28. Sep 2004 07:02


Turm von Hanoi
 
Liste der Anhänge anzeigen (Anzahl: 1)
:hi:

Ich wurde darauf angesprochen, den Source des Programms Turm von Hanoi herauszurücken. :stupid:

Ich habe leider keine Zeit, ihn ausreichend zu kommentieren, ein paar Kommentare von damals stehen drin, ich hoffe, es ist einigermaßen verständlich.

Da ich nur ungern Fremdkomponenten benutze, enthält das Projekt massig Images und Labels (damals wollte ich unbedingt ein "nicht standard"-Design machen, keine Ahnung warum...


Ich veröffentliche den Code rein zu Lernzwecken. :stupid:

Alexander Roth 14. Okt 2004 15:27

Re: Turm von Hanoi
 
Perfekt Programmiert.
Alle Achtung! :-D

Mega nett von dir den Code Rauszugeben.
Zitat:

Ich veröffentliche den Code rein zu Lernzwecken
Lernen kann ich viel davon. Danke.

Mobby 20. Feb 2007 11:55

Re: Turm von Hanoi
 
Also auch nochmal von mir herzlichen Dank für den Code!!!
:dp:
Nur leider kann ich deine Laufvariablen und das Verschieben der einzelnen Steine nicht richtig nachvollziehn. Mir ist unklar wie die Steine von einem zum anderen Stapel gezogen bzw .da es ja Image sind "gebeamt" werden. :gruebel:


Wäre super nett, falls mir jemand auf die Sprünge helfen könnte! :roteyes:

MfG Mobby


Vielleicht komme ich dann ja weiter bei meinem eigenen Programm und bin auch voll "on Fire" ;) :firejump:

stahli 20. Feb 2007 18:07

Re: Turm von Hanoi
 
Hallo Matze,

absolut beeindruckende Lösung!!!

Ich habe mir das ´ne ganze Weile angesehen und einige sehr erstaunliche Lösungen gefunden.
Allerdings ein größeres Projekt auf die Art zu realisieren wäre aber wohl doch sehr aufwändig ;-(

Als I-Punkt könnten die Steine vielleicht direkt bewegt (in Form einer Parabel gehoben und auf dem neuen Stapel abgelegt) werden...

Stahli

Matze 20. Feb 2007 22:41

Re: Turm von Hanoi
 
Hi

oha, das Programm ist nun auch in die Jährchen gekommen und der Code auch nicht der beste. Mir ging's damals darum, einmal ein Skin-ähnliches Design zu erstellen. Ich bin prinzipiell gegen Designs, die vom eingestellten Windows-Theme abweichen, doch wie die meisten Anfänger, möchte man das mal ausprobieren. Da ich keine Fremdkomponenten nutzen wollte, habe ich die VCL dafür wirklich missbraucht. *g* Unbenannte Komponenten und ähnliches. Also so sollte man das eigentlich nicht machen, sondern es ist eine kleine Demo, was theoretisch mit den Standardkomponenen möglich wäre. Auf den Trick mit dem transparenten Labels war ich damals besonders stolz. :mrgreen:

Zitat:

Zitat von Mobby
Mir ist unklar wie die Steine von einem zum anderen Stapel gezogen bzw .da es ja Image sind "gebeamt" werden. :gruebel:

Das geschieht über

Code:
procedure TForm1.Verschieben(n: integer; s, z, h: integer);
Diese Prozedur ist rekursiv, ruft sich also selbst wieder auf. Das Nachvollziehen ist bei rekursiven Aufrufen nicht immer leicht, das gebe ich zu, aber wenn man sich konzentriert und einmal verstanden hat, wie eine Rekursion abläuft, ist es gar nicht mal so kompliziert. :)

@stahli: Schön, dass es dir gefällt!

Zitat:

Zitat von stahli
Als I-Punkt könnten die Steine vielleicht direkt bewegt (in Form einer Parabel gehoben und auf dem neuen Stapel abgelegt) werden...

Das kannst du gerne implementieren und hier zu Verfügung stellen, wenn du magst. ;)

sirius 21. Feb 2007 08:14

Re: Turm von Hanoi
 
Zitat:

Das Nachvollziehen ist bei rekursiven Aufrufen nicht immer leicht, das gebe ich zu, aber wenn man sich konzentriert und einmal verstanden hat, wie eine Rekursion abläuft, ist es gar nicht mal so kompliziert.
Im Fall von "Turm von Hanoi" habe ich das mal hier versucht bildlich darzustellen.

xZise 21. Feb 2007 13:01

Re: Turm von Hanoi
 
BTW: Turm von Hanoi (bitte Linkung beachten!)

Mobby 21. Feb 2007 21:39

Re: Turm von Hanoi
 
also von der problematik des turms von hanoi versteh ich alles...ich hab auch schon zieg seiten gefunden wo man es selbst spielen kann...mein problem ist nur diese rekrusive(haben wir gerade in der schule) zu verstehn. ich mein das mit dem aufrufen in sich selbst ist mir klar und dass es bei großen prozessen schneller geht und hier eigentlich die iterative einfacher ;) aber der lehrer hätte es gern so also machen wir das...und um einen geeigneten algorhytmus zu finden ist uns matze's werk ins auge gesprungen :cyclops: und wir(noch zwei andere personen aus meinem basiskurs informatik) versuchen nun eine für uns geeignete art zu finden dieses problem selbst zu lösen...wobei wir schon bugs gefunden haben :spin2:

uns fehlt einfach der ansatz um die ganze sache aufzuziehn...und die visualisierung fanden wir auf den ersten blick überladen ;) aber man gewöhnt sich dran wenn man es 2h lang versucht nachzuvollziehn :corky:

mfg mobby


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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