Türme von Hanoi mit beliebiger Startposition

Status
Nicht offen für weitere Antworten.

riogrande

Neues Mitglied
Hallo zusammen,

Für die Uni muss ich ein Türme von Hanoi spiel schreiben, dass der User eben selber "spielen" kann - ansich nicht die große Herausforderung. Der User soll jedoch bei jedem beliebigen Zug die Möglichkeit haben den nächsten Zug angezeigt zu bekommen bzw. das Spiel zu lösen. "Normale" Türme von Hanoi Löser finden sich ja massig im Netz, jedoch habe ich noch keinen code mit beliebigen Startzuständen gefunden, weiß da wer weiter?

Besten Dank,
riogrande
 
wenn du nicht so hohe türme hast kannste da den code bis zu deiem status laufen lassen. dann kannste den nächsten schritt bestimmen.
 
Hehe, naja aber das ist ja Betrug 😉 Ich denke mal er hat die Aufgabenstellung genau deshalb
so bekommen, weil jeder weiss dass man das Original tausendfach im Netz findet. Und
ich denk mal die werden sich den Code ansehen, und wenn sie dann sowas entdecken...
500€ in den Wind geschossen 😉
 
wenn du nicht so hohe türme hast kannste da den code bis zu deiem status laufen lassen. dann kannste den nächsten schritt bestimmen.
Der Benutzer kann sich auch in eine Situation manövrieren, die beim "normalen" Lösen nicht vorkommt. Ich glaube, da braucht man einen ... etwas anderen Ansatz. Ich bin aber (AUCH :wink: ) gerade zu faul, darüber nachzudenken.
 
Ich denke, du brauchst eine Art Suchbaum.
- von jeder Stellung die möglichen Züge ermitteln
- gucken, ob wir die Stellung schon hatten (sonst gibt es unendliche ekursion)
- Um das ganze etwas zu beschleunigen, würde ich eine Tiefensuche mit Backtracking implementieren. Du kannst nämlich recht gut abschätzen, ob dich ein Zug näher an die Lösung bringt, oder nicht, und die "besseren" probierst du natürlich zuerst

Sowas in Java zu programmieren ist nicht ganz trivial. Für solche Probleme sind Sprachen wie Prolog viel besser geeignet...
 
ich würde eher versuchen, das so umzuformulieren, dass du immer nur die größte scheibe von türmen 1 und 2 auf die Größeren scheiben vom 3. Turm verschieben musst. Das liefert bei der gewöhnlichen ausgangssituation dasselbe ergebnis, findet aber auch eine lösung in jedem beliebigen fall.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben