Hey Leute,
Ich versuche derzeit mich ein wenig in Java einzulernen. Da die "Türme von Hanoi" anscheinend ein recht gutes Beispiel für Rekursion sind, habe ich mich damit beschäftigt.
Im Internet habe ich eine Menge Codes gefunden, die in etwa so aussehen:
Allerdings möchte ich das Programm nicht Anweisungen ausgeben lassen, sondern Anweisungen ausführen lassen. Habe meinen Code also umgestaltet.
die Zahlen 0,1,2 sind die Indizes der Türme. Dieser Code funktioniert allerdings nicht. Klingt für mich auch irgendwie logisch, da für mich die letzte Zeile
wenig Sinn macht. Diese wird im Laufe der Rekursion doch einfach direkt wieder überschrieben, bevor sie überhaupt Wirkung hat ?!
Sitze jetzt schon ne Weile daran und vielleicht sehe ich den Wald vor lauter Bäumen auch nicht
Im übrigen bin ich auch eher skeptisch, dass so ein kurzer Code hier als Lösung genügt, auch wenn es sich um Rekursion handelt .
Edit: Tut mir leid, dass ich das Thema mal wieder ausgrabe (scheint ja schon oft besprochen worden zu sein), aber ich bin über google einfach nicht schlau draus geworden.
Ich versuche derzeit mich ein wenig in Java einzulernen. Da die "Türme von Hanoi" anscheinend ein recht gutes Beispiel für Rekursion sind, habe ich mich damit beschäftigt.
Im Internet habe ich eine Menge Codes gefunden, die in etwa so aussehen:
Java:
private static void playHanoi(int n, String from , String other, String to) {
if (n == 0)
return;
if (n > 0)
playHanoi(n-1, from, to, other);
System.out.printf("Move one disk from pole %s to pole %s \n ", from, to);
playHanoi(n-1, other, from, to);
Allerdings möchte ich das Programm nicht Anweisungen ausgeben lassen, sondern Anweisungen ausführen lassen. Habe meinen Code also umgestaltet.
Java:
public void playHanoi(int disks, int from, int to, int other) {
if (disks == 1) {
han.move(0, 2);
} else {
playHanoi(disks - 1, 0, 2, 1);
han.move(0, 1);
playHanoi(disks - 1, 1, 0, 2);
die Zahlen 0,1,2 sind die Indizes der Türme. Dieser Code funktioniert allerdings nicht. Klingt für mich auch irgendwie logisch, da für mich die letzte Zeile
Java:
playHanoi(disks - 1, 2, 0, 1);
Sitze jetzt schon ne Weile daran und vielleicht sehe ich den Wald vor lauter Bäumen auch nicht

Edit: Tut mir leid, dass ich das Thema mal wieder ausgrabe (scheint ja schon oft besprochen worden zu sein), aber ich bin über google einfach nicht schlau draus geworden.
Zuletzt bearbeitet: