Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1260to1264
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Türme von Hanoi

Türme von Hanoi
Hanoi
Hallo zusammen
Ich habe einen VBA-Script geschrieben "Verschieben(Von, Nach)", der eine Scheibe von Turm "von" nach Turm "Nach" verschiebt. Dabei überprüft das Programm auch die Regeln (kleine Scheibe auf grosser Scheibe).
Jetzt möchte ich eine rekursive Prozedur und den Script "Verschieben(von, nach)" darin einbaut, damit das Ganze automatisch abläuft.
leider schaff ich das nicht.
vielen Dank für Eure Hilfe.
mfg
Pepi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Türme von Hanoi
04.05.2012 14:43:58
Hanoi
Lieber Bernd
Habe mehr als eine Stunde gegoogelt. Bin auch auf Deinen Link gestossen, kann aber leider damit nichts anfangen. Es geht ja nicht nur um einen Logik, sondern auch um die Scheiben, die effektiv verschoben werden müssen - ich habe das mit der Prozedur "Verschieben(von, nach) gelöst. Dabei wird die oberste Scheibe bei "von" gelöscht und eine gleiche Scheibe bei "Nach" obendrauf gelegt. Doch wie baue ich mein Makro in die rekursive Schlaufe ein?
Bitte um weitere Tipps.
mfg
Pepi
Anzeige
AW: Türme von Hanoi
04.05.2012 17:11:58
Hanoi
Hi Pepi,
da komme ich am Wochenende nicht mehr dazu. Wenn das kein Anderer übernimmt musst Du Dich bis mindestens Anfang nächster Woche gedulden.
Und, schicke vielleicht auch mal her was Du bisher hast.
cu, Bernd
AW: Türme von Hanoi
04.05.2012 20:50:49
Hanoi
hallo zusammen
Hier noch der Link meiner Datei - Manuell funktioniert sie gut - doch möchte ich sie noch automatisch ablaufen lassen.
https://www.herber.de/bbs/user/80043.xlsm
danke für Tipps
AW: Türme von Hanoi
07.05.2012 09:32:14
Hanoi
Morgen,
Um einen Turm mit n Scheiben von A nach C zu verschieben kannst Du immer so etwas tun:
- Verschiebe n-1 Scheiben von A nach B
- Verschiebe die letzte Scheibe von A nach C
- Verschiebe n-1 Scheiben von B nach C
Beachte die runden Klammern beim Aufruf von SU_Verschieben oder definiere Deine Aufrufparameter als By Value!
cu, Bernd
--
Option Explicit
Sub StartIt()
SU_Basis
VerschiebeTurm Tabelle1.cbo.Value, 1, 3
End Sub

Sub VerschiebeTurm(ByVal N As Integer, ByVal Q As Integer, ByVal Z As Integer)
If N = 1 Then
SU_Verschieben (Q), (Z)
Else
Dim NZ As Integer
NZ = 6 - Q - Z
VerschiebeTurm N - 1, Q, NZ
SU_Verschieben (Q), (Z)
VerschiebeTurm N - 1, NZ, Z
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige