To jest Hole-3 z jesiennego turnieju APL CodeGolf . Jestem oryginalnym autorem problemu i dlatego mogę go ponownie opublikować tutaj.
Dany:
liczba zwojów (proszę podać, jeśli żaden ruch nie wynosi 0, w przeciwnym razie założymy, że nazywa się to 1) i
lista jednej lub więcej pozycji początkowych (w dowolnej formie, np. 0 lub 1 indeksowanych współrzędnych lub 64 kolejnych liczb / znaków lub A1 – H8 - stan, który), na szachownicy 8 na 8,
zwróć (w dowolnej kolejności) listę unikalnych pozycji (w tym samym formacie co dane wejściowe), w których rycerze mogą znajdować się po określonej liczbie tur.
Każdy rycerz musi się poruszać z każdą turą, ale nie musisz się martwić, że wielu rycerzy zajmuje ten sam kwadrat.
Rycerz może poruszać się tylko na pozycje oznaczone X w stosunku do swojej aktualnej pozycji, oznaczonej with:
Przykłady (współrzędne 1-indeksowane)
1
przenieść z [[1,1]]
: [[2,3],[3,2]]
2
przenosi z [[1,1]]
: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]]
1
przenieść z [[1,1],[5,7]]
: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]]
2
przenosi z [[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
przenosi z [[3,4]]
: [[3,4]]
[[1,1]], 2 -> [[2,3],[3,2]]