Die Türme von Hanoi sind ein klassisches Übungsbeispiel für Programmierer. Für Kinder gibt es das Rätsel auch als Holzspielzeug zu kaufen. Die Regeln sind einfach:
Das folgende Bild, das von Wikipedia übernommen wurde, veranschaulicht das Prinzip:
Deine Aufgabe ist es, ein Programm zu schreiben, das für jede beliebige Anzahl an Spielsteinen die notwendigen Züge ausgibt. Der Einfachheit halber numerieren wir die Spielsteine durch. Der kleinste hat die Nummer 1, der zweitkleinste die Nummer 2 und so weiter.
Bei einem Spielstein ist die Lösung trivial:
Schiebe 1 von L nach M
Bei zwei Spielsteinen brauchen wir drei Schritte:
Schiebe 1 von L nach R
Schiebe 2 von L nach M
Schiebe 1 von R nach M
Für drei Spielsteine brauchst du schon sieben Schritte:
Schiebe 1 von L nach M
Schiebe 2 von L nach R
Schiebe 1 von M nach R
Schiebe 3 von L nach M
Schiebe 1 von R nach L
Schiebe 2 von R nach M
Schiebe 1 von L nach M
Hier eine Grafik, die die Lösung mit drei Spielsteinen veranschaulicht (Bildquelle)
Und so weiter.
In dieser Übung sollst du selbst versuchen, das Programm zu schreiben, ohne vorab eine Lösung zu haben. Du kannst jede beliebige Programmiersprache dafür verwenden, die du schon kennst. Falls du unsicher bist, verwende C#. Hier die wichtigsten Schritte zum Starten:
Installiere auf deinem Computer C# falls du es noch nicht installiert hast: Installationsanleitung
Installiere auf deinem Computer einen Editor wie z.B. Visual Studio Code
Erstelle dir einen leeren Ordner auf deinem Computer. Nehmen wir an, der Ordner heißt c:\hanoi
Öffne eine Kommandozeile (Command Prompt) und wechsle mit dem cd
Kommando in den Ordner (z.B. cd c:\hanoi
).
Erstelle eine leere C# Konsolenanwendung, indem du in dem Kommandozeilenfenster dotnet new
eingibst. Starte sie, indem du dotnet run
eingibst. Es müsste Hello World
ausgegeben werden.
Öffne den Ordner in deinem Editor. Falls du Visual Studio Code verwendest, gib einfach im Kommandozeilenfenster code .
ein (.
steht für das aktuelle Verzeichnis).
Jetzt kannst du loslegen. Viel Spaß beim Tüfteln ;-)
Möchtest du deine Lösung mit einer Musterlösung vergleichen oder brauchst du Inspiration? Hier findest du eine Musterlösung in C#.
C# gefällt dir? Du möchtest mehr wissen?
Wenn du Lust hast kannst du einen kostenlosen Online-Videokurs über C# machen. Dabei lernst du die Programmiersprache von Grund auf Schritt für Schritt kennen.
Wenn du im CoderDojo bist, löchere deine Mentoren mit Fragen. In Linz haben wir bei paar echte C# Profis dabei, die in diesem Bereich weit über die Grenzen von Österreich hinaus bekannt sind.