Türme von Hanoi in C#

Türme von Hanoi in C#

Türme von Hanoi oder Turm von Brahma oder Lucas-Turm


Tower of Hanoi ist ein mathematisches Spiel oder Puzzle. Es besteht aus drei Stangen (Türmen) und einer Reihe von Scheiben unterschiedlicher Größe, die auf jede Stange geschoben werden können. Das Puzzle beginnt mit den Scheiben in einem ordentlichen Stapel in aufsteigender Größe auf einer Stange, die kleinste oben, wodurch eine konische Form entsteht.


Das Ziel des Puzzles ist es, den gesamten Stapel auf eine andere Stange zu verschieben und dabei der folgenden einfachen Regeln:

  • Es kann immer nur eine Festplatte verschoben werden.
  • Jeder Zug besteht darin, die obere Scheibe von einem der Türme zu nehmen und sie auf einen anderen Turm zu legen, d. h. eine Scheibe kann nur bewegt werden, wenn sie die oberste Scheibe auf einem Turm ist.
  • Keine Scheibe darf auf eine kleinere Scheibe gelegt werden.

Türme von Hanoi mit Rekursion lösen:

public class TowersOfHanoi
    {
        public static void Main(String[] args)
        {
            char startPeg = 'A'; // start tower in output
            char endPeg = 'C'; // end tower in output
            char tempPeg = 'B'; // temporary tower in output
            int totalDisks = 3; // number of disks

            solveTowers(totalDisks, startPeg, endPeg, tempPeg);
        }

        private static void solveTowers(int n, char startPeg, char endPeg, char tempPeg)
        {
            if (n > 0)
            {
                solveTowers(n - 1, startPeg, tempPeg, endPeg);
                Console.WriteLine("Move disk from " + startPeg + ' ' + endPeg);
                solveTowers(n - 1, tempPeg, endPeg, startPeg);

            }
        }        

    }

Ausgabe:

Datenträger von A nach C verschieben
Datenträger von A nach B verschieben
Datenträger von C nach B verschieben
Datenträger von A nach C verschieben
Datenträger von B nach A verschieben
Festplatte von B nach C verschieben
Festplatte von A nach C verschieben

Danke für Ihren Besuch !!