Dies ist Hole-3 von The Autumn Turnier von APL CodeGolf . Ich bin der ursprüngliche Autor des Problems dort und darf es daher hier erneut posten.
Gegeben:
eine Anzahl von Umdrehungen (bitte geben Sie an, wenn keine Bewegung 0 ist, ansonsten nehmen wir an, dass es 1 heißt) und
eine Liste von einer oder mehreren Startpositionen (in beliebiger Form, z. B. 0 oder 1 indexierte Koordinaten oder 64 fortlaufende Zahlen / Zeichen oder A1 – H8 - geben Sie an, welche) auf einem 8-mal-8-Schachbrett,
Gibt (in beliebiger Reihenfolge) die Liste der eindeutigen Positionen zurück (im selben Format wie die Eingabe), an denen sich der Ritter nach der angegebenen Anzahl von Runden befinden kann.
Jeder Ritter muss sich mit jedem Zug bewegen, aber Sie müssen sich keine Sorgen machen, dass mehrere Ritter dasselbe Feld besetzen.
Ein Ritter kann sich nur zu den mit X markierten Positionen relativ zu seiner aktuellen Position bewegen, die mit ♞ markiert ist:
Beispiele (1-indizierte Koordinaten)
1
umziehen von [[1,1]]
: [[2,3],[3,2]]
2
bewegt sich von [[1,1]]
: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]]
1
umziehen von [[1,1],[5,7]]
: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]]
2
bewegt sich von [[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
bewegt sich von [[3,4]]
: [[3,4]]
[[1,1]], 2 -> [[2,3],[3,2]]