Це Діра-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]]