Hallo! Ich bereite mich gerade auf eine Java-Prüfung vor und stecke seit Tagen bei Hanoi-Varianten fest. Die Standard-Version habe ich verstanden (siehe Code). Doch finde ich keinen Ansatz für die geforderten Varianten (siehe Aufgabenstellung weiter unten).
Folgende Aufgabenstellung:
--------------------------------------
Es gelten jeweils die Regeln für "Türme von Hanoi" (Aufgabe 22)
3.1. "Hanoi im Uhrzeigersinn": Schreiben Sie eine rekursive Methode, die
eine Zugfolge für "Türme von Hanoi" ausgibt, bei der nur Bewegungen von
Stapel 1 nach Stapel 2, von 2 nach 3 und von 3 nach 1 erlaubt sind.
3.2. "Hanoi in einer Linie": Schreiben Sie eine rekursive Methode, die
eine Zugfolge für "Türme von Hanoi" ausgibt, bei der keine Bewegungen
von Stapel 1 zu Stapel 3 oder umgekehrt erlaubt sind.
(Beide Aufgaben sind aus "Concrete Mathematics" von Graham, Knuth,
Patashnik.)
Es gibt zu 3.1 und 3.2 jeweils eine sehr kurze Loesung.
-------------------------------------------------------
Da die Lösung sehr kurz sein soll gehe ich davon aus, dass ich nur minimale Änderungen vornehmen muss. Allein es fehlt der Ansatz. Vielen Dank für eure Hilfe! Wichtig: Rekursive Lösung ist gefragt.
Java:
public class Hanoi {
static int bewegungen=0;
public static void main(String[] args) {
System.out.println("Standard Hanoi");
turm('A', 'C', 'B', 3);
System.out.println("Es wurden "+bewegungen+" Bewegungen benoetigt.");
}
public static void bewege (char start, char ziel) {
System.out.println("Setze Scheibe "+start+" auf "+ziel);
bewegungen++;
}
public static void turm (char start, char ziel, char ablage, int hoehe) {
if (hoehe >1)
turm (start, ablage, ziel, hoehe-1);
bewege (start, ziel);
if (hoehe >1)
turm (ablage, ziel, start, hoehe-1);
}
}
Folgende Aufgabenstellung:
--------------------------------------
Es gelten jeweils die Regeln für "Türme von Hanoi" (Aufgabe 22)
3.1. "Hanoi im Uhrzeigersinn": Schreiben Sie eine rekursive Methode, die
eine Zugfolge für "Türme von Hanoi" ausgibt, bei der nur Bewegungen von
Stapel 1 nach Stapel 2, von 2 nach 3 und von 3 nach 1 erlaubt sind.
3.2. "Hanoi in einer Linie": Schreiben Sie eine rekursive Methode, die
eine Zugfolge für "Türme von Hanoi" ausgibt, bei der keine Bewegungen
von Stapel 1 zu Stapel 3 oder umgekehrt erlaubt sind.
(Beide Aufgaben sind aus "Concrete Mathematics" von Graham, Knuth,
Patashnik.)
Es gibt zu 3.1 und 3.2 jeweils eine sehr kurze Loesung.
-------------------------------------------------------
Da die Lösung sehr kurz sein soll gehe ich davon aus, dass ich nur minimale Änderungen vornehmen muss. Allein es fehlt der Ansatz. Vielen Dank für eure Hilfe! Wichtig: Rekursive Lösung ist gefragt.
Zuletzt bearbeitet: