Il s'agit du trou 3 du tournoi d'automne d'APL CodeGolf . Je suis l'auteur original du problème là-bas, et donc autorisé à le publier à nouveau ici.
Donné:
un certain nombre de tours (veuillez indiquer si aucun mouvement n'est égal à 0, sinon nous supposerons qu'il s'appelle 1) et
une liste d'une ou plusieurs positions de départ (sous n'importe quelle forme, par exemple 0 ou 1 coordonnées indexées ou 64 nombres / caractères consécutifs ou A1 – H8 - indiquer laquelle), sur un échiquier de 8 par 8,
retourner (dans n'importe quel ordre) la liste des positions uniques (dans le même format que l'entrée) où le chevalier peut se trouver après le nombre de tours donné.
Chaque chevalier doit se déplacer à chaque tour, mais vous n'avez pas à vous soucier de plusieurs chevaliers occupant la même case.
Un chevalier ne peut se déplacer qu'aux positions marquées d'un X par rapport à sa position actuelle, marquées d'un ♞:
Exemples (coordonnées indexées 1)
1
passer de [[1,1]]
: [[2,3],[3,2]]
2
se déplace de [[1,1]]
: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]]
1
passer de [[1,1],[5,7]]
: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]]
2
se déplace 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
se déplace de [[3,4]]
: [[3,4]]
[[1,1]], 2 -> [[2,3],[3,2]]