In Chess ist es möglich, dass das Spiel nach 4 Zügen (je 2) mit einem Fool's Mate endet .
Ihr Ziel ist es, den Fool's Mate of Halma zu finden : das 2-Spieler-Spiel von Halma, das die Anzahl der gespielten Züge minimiert.
Es gibt über 10 56 Board-Zustände, und ich habe gesehen, dass der Verzweigungsfaktor 1000 übersteigt, sodass die Wahrscheinlichkeit besteht, dass niemand die optimale Lösung findet. Stattdessen versuchen Sie, die bestmögliche Lösung zu finden.
Sie sollten eine Liste von Zügen und den Code, den Sie zum Generieren dieser Züge verwendet haben, einreichen.
Erklärung des Spiels
Halma ähnelt Chinese Checkers, wurde jedoch auf einem 16 * 16-Quadrat gespielt.
Das Board sieht zunächst so aus:
Das Ziel des Spiels ist es, alle Ihre Figuren auf die Startpositionen der gegnerischen Figuren zu bringen.
Wenn ein Spieler an der Reihe ist, darf er / sie:
Die Wende passieren
Bewegen Sie eines seiner Teile auf ein angrenzendes leeres Feld. Benachbarte Räume schließen Diagonalen ein.
Nehmen Sie eines seiner Teile und wiederholen Sie die folgenden Schritte: Springen Sie das Teil über ein benachbartes Teil und landen Sie es auf dem Feld gegenüber dem übersprungenen Teil.
Hier ist ein Beispiel zur Veranschaulichung der zweiten Bewegungsart.
Regeln
Reichen Sie eine Liste der legalen Züge ein, die zum Ende des Spiels führen.
Übermitteln Sie den Code, mit dem Sie die Liste erstellt haben.
Wenn Sie mit dem Code einer anderen Person ein besseres Ergebnis erzielen, veröffentlichen Sie das Ergebnis in einem Kommentar oder bearbeiten Sie deren Beitrag mit den neuen Ergebnissen.
Jede Bewegung muss entweder None
zum Überholen des Zuges oder (x1,y1,x2,y2)
zum Bewegen einer Figur erfolgen, wobei (x1,y1)
die Koordinaten der zu bewegenden Figur und (x2,y2)
das Ziel dieser Figur sind (bei Sprungbewegungen Zwischenkoordinaten ignorieren). Die Koordinaten beginnen (0,0)
in der oberen linken Ecke. x-Koordinaten steigen nach rechts, y-Koordinaten steigen nach unten. Bewegungen sollten durch Zeilenumbrüche getrennt werden.
Mit diesem Python-Skript können Sie Ihre Bewegungen überprüfen. Mit python halma_verify.py < file
bestätigen, dass eingezogen wird file
.
Kürzeste Liste gewinnt.