Это лунка -3 с осеннего турнира APL CodeGolf . Я являюсь первоначальным автором этой проблемы, и поэтому мне разрешено повторно публиковать ее здесь.
Данный:
количество ходов (пожалуйста, укажите, если нет движений 0, в противном случае мы будем считать, что он называется 1) и
список одной или нескольких начальных позиций (в любой форме, например, 0 или 1 индексированные координаты или 64 последовательных числа / символа или A1 – H8 - состояние, которое), на шахматной доске 8 на 8,
вернуть (в любом порядке) список уникальных позиций (в том же формате, что и входные данные), в которых рыцари могут находиться после заданного количества ходов.
Каждый рыцарь должен двигаться с каждым ходом, но вам не нужно беспокоиться о том, что несколько рыцарей занимают один и тот же квадрат.
Рыцарь может двигаться только в позиции, отмеченные X, относительно его текущей позиции, отмеченной ♞:
Примеры (1-индексированные координаты)
1
перейти от [[1,1]]
: [[2,3],[3,2]]
2
движется от [[1,1]]
: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]]
1
перейти от [[1,1],[5,7]]
: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]]
2
движется от [[1,1],[5,7]]
: [[1,1],[1,3],[1,5],[1,7],[2,4],[2,6],[2,8],[3,1],[3,3],[3,5],[3,7],[4,2],[4,4],[4,6],[4,8],[5,1],[5,3],[5,5],[5,7],[6,4],[6,6],[6,8],[7,3],[7,7],[8,4],[8,6],[8,8]]
0
движется от [[3,4]]
: [[3,4]]
[[1,1]], 2 -> [[2,3],[3,2]]