Tower of Hanoi
Verfasst: Donnerstag 5. Juli 2018, 16:33
Hallöchen Leute,
ich habe ein Probelm und hoffe das mir im Forum jemand auf die Sprünge helfen kann.
Diesen Skript habe ich zur Verfügung gestellt bekommen. Es handelt sich hierbei um eine Simulation von den Türmen von Hanoi.
# Startposition
A = [4,3, 2, 1]
B = []
C = []
print str(A) + str(B) + str(C)
print "##############"
print "\n"
def bewegen(n, quelle, ziel, hilf):
if n > 0:
bewegen(n - 1, quelle, hilf, ziel)
ziel.append(quelle.pop())
print str(A) + str(B) + str(C)
print "##############"
print "\n"
bewegen(n - 1, hilf, ziel, quelle)
bewegen(4, A, C, B)
Simulationen sind aber irgendwie "langweilig", ich möchte gerne das der Benutzer selber die Züge steuert.
Wie kann man da vorgehen?
Mein Ansatz war:
Der Benutzer gibt die zu bewegender Scheibe und den Zielstab ein.
Es handelt sich prinzipiell ja nur um eine Schleife die so lange wiederholt wird, bis alle Scheiben auf Stab C gebracht wurden. (Abbruchbedingung für Schleife)
Nun versuche ich die Eingabe zu überprüfen, also zunächst herauszufinden in welcher Liste sich die Scheibe befindet und ob sie bewegt werden kann.
Anschließend muss ich überprüfen ob die Scheibe auf den Zielstab "gelegt" werden kann und natürlich müssen noch die Werte in den Listen geändert werden.
Vielen Dank!
ich habe ein Probelm und hoffe das mir im Forum jemand auf die Sprünge helfen kann.
Diesen Skript habe ich zur Verfügung gestellt bekommen. Es handelt sich hierbei um eine Simulation von den Türmen von Hanoi.
# Startposition
A = [4,3, 2, 1]
B = []
C = []
print str(A) + str(B) + str(C)
print "##############"
print "\n"
def bewegen(n, quelle, ziel, hilf):
if n > 0:
bewegen(n - 1, quelle, hilf, ziel)
ziel.append(quelle.pop())
print str(A) + str(B) + str(C)
print "##############"
print "\n"
bewegen(n - 1, hilf, ziel, quelle)
bewegen(4, A, C, B)
Simulationen sind aber irgendwie "langweilig", ich möchte gerne das der Benutzer selber die Züge steuert.
Wie kann man da vorgehen?
Mein Ansatz war:
Der Benutzer gibt die zu bewegender Scheibe und den Zielstab ein.
Es handelt sich prinzipiell ja nur um eine Schleife die so lange wiederholt wird, bis alle Scheiben auf Stab C gebracht wurden. (Abbruchbedingung für Schleife)
Nun versuche ich die Eingabe zu überprüfen, also zunächst herauszufinden in welcher Liste sich die Scheibe befindet und ob sie bewegt werden kann.
Anschließend muss ich überprüfen ob die Scheibe auf den Zielstab "gelegt" werden kann und natürlich müssen noch die Werte in den Listen geändert werden.
Vielen Dank!