Este es el hoyo 3 del Torneo de otoño de APL CodeGolf . Soy el autor original del problema allí y, por lo tanto, me permite volver a publicarlo aquí.
Dado:
un número de turnos (indique si ningún movimiento es 0, de lo contrario asumiremos que se llama 1) y
una lista de una o más posiciones iniciales (en cualquier forma, por ejemplo, 0 o 1 coordenadas indexadas o 64 números / caracteres consecutivos o A1 – H8 - indica cuál), en un tablero de ajedrez de 8 por 8,
devolver (en cualquier orden) la lista de posiciones únicas (en el mismo formato que la entrada) en las que pueden estar los caballeros después del número dado de turnos.
Cada caballero debe moverse con cada turno, pero no tiene que preocuparse de que múltiples caballeros ocupen el mismo cuadrado.
Un caballero solo puede moverse a las posiciones marcadas con X en relación con su posición actual, marcadas con ♞:
Ejemplos (coordenadas indexadas 1)
1
pasar de [[1,1]]
: [[2,3],[3,2]]
2
se mueve desde [[1,1]]
: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]]
1
pasar de [[1,1],[5,7]]
: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]]
2
se mueve desde [[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
se mueve desde [[3,4]]
: [[3,4]]
[[1,1]], 2 -> [[2,3],[3,2]]