Personal Homepage, Tutorials & Blog

Java: Die Türme von Hanoi

Java: Die Türme von Hanoi

20. März '10

Die Türme von Hanoi sind ein mathematisches Knobel- und Geduldsspiel. Hier finden Sie den Java-Quelltext für ein Programm, das die Lösung berechnet.

Erklärung

Alle nötigen Erklärungen finden Sie als Kommentar im Quelltext.

Code

class Hanoi
{
   
  static int counter; // Counter für die Kontrollstruktur (Anzahl der Verlegevorgänge)

  static void shift (int zahlDerScheiben, int quellPlatz, int zwischenPlatz, int zielPlatz)
  /* Verlegeprogramm shift:
   * Verlegeoptionen um zahlDerScheiben vom quellPlatz mit Hilfe des
   * zwischenPlatz zum zielPlatz zu bewegen
   */

  {
    if (zahlDerScheiben > 0) // Bedingung: Anzahl der Scheiben muss größer 0 sein
        {
           
        shift (zahlDerScheiben - 1, quellPlatz, zielPlatz, zwischenPlatz);
        // "Nimm eine Scheibe vom quellPlatz und lege sie auf den zwischenPlatz mit Hilfe des zielPlatzes"
        System.out.println ("Nimm Scheibe Nummer " + zahlDerScheiben +" vom Platz " + quellPlatz + " und lege sie auf Platz " + zielPlatz);
        // Anweisung ausgeben
        shift (zahlDerScheiben - 1, zwischenPlatz, quellPlatz, zielPlatz);
        // "Nimm eine Scheibe vom zwischenPlatz und lege sie auf den zielPlatz mit Hilfe des quellPlatzes"
        counter++;
       
        } // Ende if-Bedingung
       
  } // Ende Verlegeprogramm


  public static void main (String [] args) // Hauptprogramm
  {
    int n = Integer.parseInt(args[0]); // Eingabe der Anzahl der Scheiben
    while (n <= 0); // Schleife bis keine Scheiben mehr auf dem quellPlatz sind
        {
        shift (n, 1, 2, 3);
        /* Aufruf des Programms shift mit Parametern:
         * n = Eingabe = Anzahl der vorhandenen Scheiben auf dem quellPlatz
         * 1 = quellPlatz
         * 2 = zwischenPlatz
         * 3 = zielPlatz
         */

        } // Ende Schleife
    System.out.println ("\r\nEs werden " + counter + " Verlegevorgänge benötigt." );
    // Ausgabe der Summe der Verlegevorgänge (Kontrollstruktur)
       
  } // Ende Hauptprogramm

}

 

Wenn Ihnen dieser Artikel gefallen hat, oder Sie Anregungen/Kritik haben, würde ich mich freuen, wenn Sie einen Kommentar schreiben oder das RSS Feed abonnieren, um immer automatisch über die neuesten Artikel auf dieser Seite informiert zu werden. Sie dürfen diesen Artikel oder die gesamte Seite auch gerne verlinken.

5 Kommentare

  1. test123 /

    niceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

  2. Dominik /

    lol vielen Dank ich werde nun masturbieren.

    • benötigt /

      hallo Dominik,
      freut mich #, dass du dieses Ereignis mit dem ganzen Internet teilst.
      Ich wünsche dir weriterhin viel Spass beim w1chsen:)
      Hochachtungsvoll, Proffessor Fap.

  3. Krampf^ /

    das Programm ist scheiße!

Einen Kommentar schreiben