8 Puzzle - это меньший вариант 15Puzzle (или Скользящая головоломка ). У вас есть 3x3
сетка, которая заполнена числами от 0 до 8 (0 обозначает пустую клетку), расположенными в случайном порядке. Ваша задача - ввести сетку 3х3 и показать кратчайшее решение (минимальное количество ходов), чтобы добраться до состояния цели. Отобразите каждое состояние платы, включая первое состояние на выходе.
Там может быть несколько оптимальных решений, вам просто нужно напечатать одно.
Вход: (маленький пример)
1 2 0
4 5 3
7 8 6
Выход:
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
Если головоломка не может быть решена, напечатайте просто -1
(обозначает неразрешимый)
Изменить : ограничение по времени: <30 секунд.
code-golf
sliding-puzzle
st0le
источник
источник
grid which is filled with numbers from 0-9
бытьgrid which is filled with numbers from 0-8
?Ответы:
Python, 418 символов
Код исчерпывающе перечисляет все позиции и составляет карты их глубины (D) и позиции, близкой к решаемой (E). Затем он ищет состояние цели, чтобы получить результат.
источник
' '*3
трюк