Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Türme von Hanoi graphisch [Java] (Rekursion)

Hier eine graphisch animierte Variante der Türme von Hanoi.

Öffnen Sie die Datei Hanoi.jar (ab Web-Code) mit Ihrer Java-Entwicklungsumgebung (z. B. BlueJ) oder durch einfaches Auspacken mit dem jar-Befehl. Sie finden darin die Quelltextdatei Hanoi.java.

Wenn Sie das Programm starten, werden Sie nach der Scheibenzahl gefragt. Auf dem Display sehen Sie einen Turm mit der entsprechenden Anzahl Scheiben. Ihre Aufgabe ist es nun, den Turm vom linken Sockel auf den mittleren Sockel zu verschieben. Dabei gelten folgende Regeln:

  1. Es kann nur eine Scheibe auf einmal verschoben werden.
  2. Es darf keine Scheibe auf eine kleinere Scheibe gelegt werden.

Durch den Aufruf super(x, y, width, height) wird die Anzahl Scheiben eingelesen und der Turm dargestellt. Die Anzahl Scheiben ist in der Variablen n gespeichert, die Sie jederzeit auslesen können. Um eine Scheibe zu verschieben, benutzen Sie die Methode verschieben(int von, int nach). Dabei sind von und nach ganze Zahlen im Bereich von 1 bis 3.

Dateien:

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

1 Lösung(en)

class HanoiLoesung extends HanoiGraphik {
  static final private int x = 0, y = 0, width = 800, height = 500;

  HanoiLoesung() {
    super(x, y, width, height);
    verschiebe(n, 1, 2, 3);
  }

  void verschiebe(int n, int von, int nach, int via) {
    if (n == 1)
      verschiebe(von, nach);
    else {
      verschiebe(n - 1, von, via, nach);
      verschiebe(1, von, nach, via);
      verschiebe(n - 1, via, nach, von);
    }
  }

  public static void main(String[] args) {
    new HanoiLoesung();
  }
}
                

Verifikation/Checksumme:

Am Ende steht der Turm in der Mitte. Unmögliche Aufrufe von verschiebe(int von, int nach) erzeugen graphische Fehlermeldungen.

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: k.A.
Webcode: 67gf-irgd
Autor: Michael Weiss ()

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen