W grze w szachy możliwe jest zakończenie gry po 4 ruchach (po 2 każdy) z głupcem .
Twoim celem jest znalezienie Fool's Mate of Halma : dwuosobowej gry Halma, która minimalizuje liczbę rozegranych tur.
Istnieje ponad 10 56 stanów kart i widziałem, że współczynnik rozgałęzienia przekracza 1000, więc są szanse, że nikt nie znajdzie optymalnego rozwiązania. Zamiast tego próbujesz znaleźć najlepsze możliwe rozwiązanie.
Powinieneś przesłać listę ruchów oraz kod użyty do wygenerowania tych ruchów.
Wyjaśnienie gry
Halma jest podobna do chińskich warcabów, ale gra się na kwadratowej planszy 16 * 16.
Początkowo plansza wygląda następująco:
Celem gry jest przeniesienie wszystkich pionków na pozycje początkowe pionów przeciwnika.
Podczas tury gracz może:
Przejdź kolejkę
Przenieś jeden ze swoich pionków na sąsiednie puste miejsce. Sąsiednie przestrzenie obejmują przekątne.
Weź jeden ze swoich pionków i wykonaj dowolną liczbę razy: Przeskocz pion na sąsiedni pion, lądując na polu naprzeciwko skoczka.
Oto przykład ilustrujący 2. typ ruchu.
Zasady
Prześlij listę legalnych ruchów, które zakończą grę.
Prześlij dowolny kod użyty do wygenerowania listy.
Jeśli uzyskasz lepszy wynik z kodu innej osoby, opublikuj wynik w komentarzu lub edytuj jego post z nowymi wynikami.
Każdy ruch musi albo None
przejść turę, albo (x1,y1,x2,y2)
przenieść kawałek, gdzie (x1,y1)
znajdują się współrzędne elementu do przesunięcia i (x2,y2)
są celem tego elementu (w przypadku ruchów skoku ignoruj współrzędne pośrednie). Współrzędne zaczynają się (0,0)
w lewym górnym rogu. Współrzędne x zwiększają się w prawo, współrzędne y zwiększają się w dół. Ruchy powinny być oddzielone znakami nowej linii.
Możesz użyć tego skryptu python, aby zweryfikować swoje ruchy. Służy python halma_verify.py < file
do weryfikacji wejść file
.
Najkrótsza lista wygrywa.