8 Puzzle to mniejszy wariant 15Puzzle (lub przesuwanej układanki ). Masz 3x3
siatkę wypełnioną cyframi od 0 do 8 (0 oznacza pustą płytkę) ułożoną w losowej kolejności. Twoim zadaniem jest wprowadzenie siatki 3x3 i pokazanie najkrótszego rozwiązania (minimum ruchów), aby dostać się do stanu celu. Wyświetlaj każdy stan tablicy, w tym pierwszy stan na wyjściu.
Może istnieć wiele optymalnych rozwiązań, wystarczy je wydrukować.
Dane wejściowe: (mały przykład)
1 2 0
4 5 3
7 8 6
Wynik:
2 <- denotes minimum number of moves required
1 2 0
4 5 3
7 8 6
1 2 3
4 5 0
7 8 6
1 2 3
4 5 6
7 8 0 <- goal state
Jeśli zagadki nie można rozwiązać, po prostu wydrukuj -1
(oznaczając nierozwiązywalne)
Edycja : Limit czasu: <30 sekund.
code-golf
sliding-puzzle
st0le
źródło
źródło
grid which is filled with numbers from 0-9
byćgrid which is filled with numbers from 0-8
?Odpowiedzi:
Python, 418 znaków
Kod wyczerpująco wylicza wszystkie pozycje i czyni mapy ich głębokości (D) oraz pozycji bliżej rozwiązanej (E). Następnie sprawdza stan celu, aby uzyskać wynik.
źródło
' '*3
sztuczka.