Meine Erfahrungen mit den Robotern (mBot) von Makeblock

Sie sind hier: Startseite > 4. Der mBot als Computer > 4.3. Türme von Hanoi

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

https://de.khanacademy.org/computing/computer-science/algorithms/towers-of-hanoi/pc/challenge-solve-hanoi-recursively

Interessante 1-Klick-Variante:

https://www.bv-birlinghoven.de/modules/spiele/tvhanoi/index.html

nach oben