Das aus dem vorvorigen Jahrhundert stammende Spiel ist eine mathematische Knobelei. Es wird z.B. bei Wikipedia genauer beschrieben: https://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi
Bekannt ist es auch als Spiel für Kleinkinder:
Es sollen mehrere aufeinanderliegende Scheiben unterschiedlicher Größe von einem Turm auf einen anderen gestapelt werden. Hierbei darf niemals eine größere auf eine kleinere Scheibe gelegt werden.
Programmiertechnisch gibt es sowohl eine iterative Lösung als auch eine rekursive. Rekursiv bedeutet hierbei, dass eine Prozedur sich selbst aufruft. Dies führt zu einer sehr kompakten Programmierung.
Hier eine Lösung in Pascal:
program Hanoi;
type
Turm = (links, mitte, rechts);
const
Tuerme:array[Turm] of string[6]=('links','mitte','rechts');
procedure BewegeStapel(const Anzahl: integer; const Quelle,Ziel,Hilfe:Turm);
begin
if Anzahl>0 then begin
BewegeStapel(Anzahl - 1, Quelle,Hilfe,Ziel);
Writeln('Bewege Scheibe ',Anzahl ,' von ',Tuerme[Quelle],' nach ',Tuerme[Ziel]);
BewegeStapel(Anzahl - 1,Hilfe,Ziel,Quelle);
end;
end;
begin
BewegeStapel(4,links,mitte,rechts);
end.
Der Programmiererspruch "Rekursiv geht meistens schief" ist zwar richtig, gilt hier aber nicht.
Das Programm existiert in so gut wie jeder Programmiersprache.
Bei Rosetta-Code (https://rosettacode.org/wiki/Towers_of_Hanoi) werden 162 Lösungen, zusätzlich einige Untervarianten, aufgeführt.
Hierbei sind noch nicht einmal eine der vielen Scratch-Lösungen (z.B.: https://de.scratch-wiki.info/wiki/T%C3%BCrme_von_Hanoi) und natürlich meine mBot-Lösung (Hanoi.sb2 (79.4 KB) nicht enthalten.
Da der Arduino rekursive Programmierung unterstützt, habe ich diese Variante gewählt.
Auf YouTube kann man sich sowohl den manuellen als auch den computer-gesteuerten Transport ansehen: https://youtu.be/Au7430pcGJI
Von diesem Spiel gibt es ebenfalls eine Vielzahl von Angeboten im Internet. Ich weiß daher noch nicht, ob ich eine eigene Version für das Internet erstellen werde.
Hier einige interessante Varianten:
Zwei-Klick-Varianten:
https://romek.info/games/hf.html
www.gf-webdesign.de/tuerme-von-hanoi/tuerme-von-hanoi.htm
Drag and Drop:
https://www.bernhard-gaul.de/spiele/tower/tower.php
Interessante 1-Klick-Variante:
https://www.bv-birlinghoven.de/modules/spiele/tvhanoi/index.html