Sixteen-Puzzle lösen

Wir betrachten folgendes Geduldsspiel:

Das Spielbrett enthält 8 rote und 8 grüne Steine. Ein Feld in der Mitte ist frei.

Ziel des Spiels ist es die grünen und roten Steine auszutauschen.

Folgende horizontalen und vertikalen Züge sind dabei möglich:

  • Ein zum leeren Feld angrenzender Stein darf in das leere Feld verschoben werden.
  • Ein Stein darf über einen anderen Stein (egal welche Farbe) in das leere Feld springen.

Hier drei gültige aufeinanderfolgende Spielzüge:

Implementieren Sie ein Programm mit rekursivem Backtracking, das eine Lösung für dieses Problem findet. Beachten Sie, das ein Hin- und Herschieben von Steinen zu unendlichen Zugfolgen führt. Dies kann durch beschränkte Tiefensuche gelöst werden: Bei 50 Zügen wird die Suche abgebrochen (es gibt Lösungen mit weniger Zügen).

Das Spiel habe ich hier gefunden. Dort kann man es mit einem JavaScript-Programm spielen. Den Ursprung des Spiels habe ich leider nicht herausgefunden.

Einen Kommentar schreiben