Este é o Buraco-3 do Torneio de Outono da APL CodeGolf . Eu sou o autor original do problema lá e, portanto, posso republicá-lo aqui.
Dado:
um número de turnos (indique se nenhum movimento é 0, caso contrário, assumiremos que é chamado 1) e
uma lista de uma ou mais posições iniciais (de qualquer forma, por exemplo, 0 ou 1 coordenada indexada ou 64 números / caracteres consecutivos ou A1 – H8 - indicar qual), em um tabuleiro de xadrez 8 por 8,
retornar (em qualquer ordem) a lista de posições únicas (no mesmo formato da entrada) em que os cavaleiros podem estar após o número determinado de turnos.
Cada cavaleiro deve se mover a cada turno, mas você não precisa se preocupar com vários cavaleiros que ocupam o mesmo quadrado.
Um cavaleiro só pode se mover para as posições marcadas com X em relação à sua posição atual, marcadas com ♞:
Exemplos (coordenadas 1-indexadas)
1
mover de [[1,1]]
: [[2,3],[3,2]]
2
move de [[1,1]]
: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]]
1
mover de [[1,1],[5,7]]
: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]]
2
move de [[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
move de [[3,4]]
: [[3,4]]
[[1,1]], 2 -> [[2,3],[3,2]]