![]() |
Delphi 6: Zwischenstand von Türme von Hanoi speichern
Hallo.
Ich möchte das sogenannte Zwischenergebnis von Türme von Hanoi abspeicher, also z.B. eine scheide liegt auf Stab 1, 2 auf Stab 2 und keine auf Stab 3. Wie kann man das denn am besten speichern ?? Gibt es eine Möglichkeit das Bild was sich dadurch ergibt irgendwie zu speichern und dieses dann auch wieda zu laden und an dieser Stelle weiter zu spielen. Da wäre doch eine Bitmap oda eine INI Datei ungeeignet dafür oder ?? Danke schon jetzt. |
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
Herzlich Willkommen in der DP :party:
Nun, Du könntest jedes mal wenn eine Scheibe auf einer Stange ist (also hingeschoben wird) einen Boolean-Wert auf true setzen, jeweils hast du dann Eigenschaften. Für Stange1 zB. 1=true,2=true würde dann zB heißen, dass du die 2 größten oder kleinsten scheiben auf der stange hast. du könntest also final abfragen, welche werte pro stange wie geseztzt sind und somit realtiv problemlos erfahren, welche scheibe wo drauf ist. |
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
Danke für den Tip aber soweit hab ich auch gedacht das es gehen würde, nur leider bin ich net so das delphi genie das ich mir da den code selbst zusammmenbauen kann.
Für ne kleine Hilfe wäre ich sehr dankbar. ;-) |
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
Herzlich Willkommen in der DP! :party:
Nun auf welche Art hast deine Türme programmiert? Rekursiv oder mit der Formel? Wenn du die Formel genommen hast dann musst du nur die Nummer und die Türme mit den Feldern(Array[0..Anz_Scheiben] of Boolean, für jeden Turm)des aktuellen Zuges in ne Datei(Stream ist denke ich empfehlenswert) speichern. Beim laden einfach die Scheiben auf die Türme verteilen und die Schleife von der angegebenen Position weiterlaufen lassen. :angel: |
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
Eigentlich hab ich das Programm rekursiv umgesetzt. Hier ist der Code mit dem Algorithmus:
Delphi-Quellcode:
Nun will ich wie gesagt den Zwischenstand abspeichern, hab aber absolut keine Ahnung wie.
procedure BewegeTurm (Quelle, Hilf, Ziel : char; n : integer);
begin if n = 1 then {Ende der Rekursion} begin BewegeStein (Quelle, Ziel, 1); pause (Form1.Geschw*125); end else begin BewegeTurm (Quelle, Ziel, Hilf, n-1); if Not Form1.Gestartet then Exit; BewegeStein (Quelle, Ziel, n); pause (Form1.Geschw*125); { unterbrechbare Pause, besser als 'Sleep' } if Not Form1.Gestartet then Exit; BewegeTurm (Hilf, Quelle, Ziel, n-1) end end; Hab mich schon nen bissl belesen zu dem Thema aber nichts brauchbares gefunden. Ich hatte mir überlegt den Zwischenstand als Bild zu speichern z.B. eine .bmp. Aber da stellen sich sicherlich 2 Probleme, ich denke das ich 1) nur schwer wenn überhaupt die Daten aus dem Bild kriege und 2) das ich net weiterspielen kann wenn ich die Datei dann mal wieda geladen habe. Wäre echt froh, wenn ich mir helfen könntet. Danke [edit=MrSpock]Delphi Tags hinzugefügt. Mfg, MrSpock[/edit] |
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
BewegeStein ist die Scheibe verschieben oder?
davor oder danach einfach speichern von wo nach wo du die Scheibe geschoben hast zusätzlich noch das aktuelle n dann für das laden musst du vmtl. ne extra Funktion schreiben, die es behandeln kann das man ein n eingibt und ab diesem Punkt dann alles verschoben wird. ich glaub sogar du brauchst keine neue Funktion, musst einfach BewegeTurm mit den gespeicherten Werten aufrufen also du brauchst en Record mit: gesamtn : integer; aktn : integer; von,nach,hilf : char; dann die drei arrays: t1,t2,t3 : array[0..gesamtn]of Boolean;(variables array mit SetLength(t1,gesamtn+1)setzt du die Länge) dann speicherst du das ganze mit einem Filestream ab, die Länge der array ist ja gesamtn+1, dürfte also kein Problem sein es zu speichern und dann nochmal zu laden. |
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
wie sieht denn die procedure BewegeStein aus?
|
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
Ich denke, nach über 2 Jahren hat sich das Problem erledigt ^^.
|
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
^^ja aber ich versuch das mit den türmen ähnlich zu lösen...und irgendwie komm ich da nicht weiter...
|
Re: Delphi 6: Zwischenstand von Türme von Hanoi speichern
Zitat:
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz