Un leaper è una categoria di pezzi degli scacchi delle fate che si muove "saltando". Un cavaliere normale è un (1,2) -foglia, il che significa che ogni mossa comporta lo spostamento di una distanza di 1 quadrato in direzione ortogonale e 2 quadrati in direzione perpendicolare.
.o.o.
o...o
..N..
o...o
.o.o.
Ci sono molti diversi saltatori. La foglia (1,3) si chiama Long Knight o Camel. Il suo modello di spostamento è simile al seguente:
..o.o..
.......
o.....o
...L...
o.....o
.......
..o.o..
C'è anche il (2,2) Alfil ...
o...o
.....
..A..
.....
o...o
... e persino il (0,1) Wazir.
.o.
oWo
.o.
Sfida
Data una coppia di numeri come input, emette il diagramma di movimento corrispondente. È possibile scrivere un programma o una funzione, con input fornito tramite STDIN / riga di comando o come argomento e output fornito da STDOUT o dal valore restituito. Questo è code-golf .
Ingresso
L'input sarà un elenco separato da virgole di due numeri interi e una lettera maiuscola. I due numeri interi saranno 0-7compresi nell'intervallo (incluso) e in ordine non decrescente. Newline finale opzionale per input e output.
Ecco gli input per i quattro esempi precedenti:
1,2,N
1,3,L
2,2,A
0,1,W
Produzione
L'output sarà una stringa multilinea di forma quadrata. La lettera maiuscola verrà posizionata al centro per rappresentare la posizione corrente del pezzo. Le posizioni dei movimenti saranno rappresentate da 4 o 8 lettere minuscole o. Tutti gli altri spazi nella piazza saranno riempiti con punti.
Se lo schema di movimento è 0,0, genera solo la lettera maiuscola.
Come suggerimento, se il secondo numero intero (quello più grande) ha valore N, il quadrato avrà sempre una lunghezza laterale 2N + 1. Le os saranno sempre sul perimetro della piazza.
Test aggiuntivi
1,1,F
o.o
.F.
o.o
5,7,Q
..o.........o..
...............
o.............o
...............
...............
...............
...............
.......Q.......
...............
...............
...............
...............
o.............o
...............
..o.........o..
0,0,J
J