Un saltador es una categoría de pieza de ajedrez de hadas que se mueve "saltando". Un caballero normal es un (1,2) -leaper, lo que significa que cada movimiento implica mover una distancia de 1 cuadrado en una dirección ortogonal y 2 cuadrados en la dirección perpendicular.
.o.o.
o...o
..N..
o...o
.o.o.
Hay muchos saltadores diferentes. El (1,3) -leaper se llama Long Knight, o Camel. Su patrón de movimiento se ve así:
..o.o..
.......
o.....o
...L...
o.....o
.......
..o.o..
También está el (2,2) Alfil ...
o...o
.....
..A..
.....
o...o
... e incluso el (0,1) Wazir.
.o.
oWo
.o.
Desafío
Dado un par de números como entrada, genera el diagrama de movimiento correspondiente. Puede escribir un programa o función, con la entrada proporcionada a través de STDIN / línea de comandos o como argumento, y la salida proporcionada por STDOUT o el valor de retorno. Este es el código de golf .
Entrada
La entrada será una lista separada por comas de dos enteros y una letra mayúscula. Los dos enteros estarán en el rango 0-7
(inclusive) y en orden no decreciente. Nueva línea final opcional para entrada y salida.
Aquí están las entradas para los cuatro ejemplos anteriores:
1,2,N
1,3,L
2,2,A
0,1,W
Salida
La salida será una cadena multilínea de forma cuadrada. La letra mayúscula se colocará en el centro para representar la ubicación actual de la pieza. Las ubicaciones de movimiento estarán representadas por 4 u 8 minúsculas o
. Todos los demás espacios en el cuadrado se llenarán con puntos.
Si el patrón de movimiento es 0,0
, escriba solo la letra mayúscula.
Como pista, si el segundo entero (el más grande) tiene un valor N, entonces el cuadrado siempre tendrá una longitud lateral 2N + 1. El o
s siempre estará en el perímetro del cuadrado.
Casos de prueba adicionales
1,1,F
o.o
.F.
o.o
5,7,Q
..o.........o..
...............
o.............o
...............
...............
...............
...............
.......Q.......
...............
...............
...............
...............
o.............o
...............
..o.........o..
0,0,J
J
Respuestas:
Ruby, 107
Sin golf en el programa de prueba
fuente
Pyth, 40 bytes
Estoy aprendiendo Pyth! Probarlo .
Explicación
fuente
JavaScript (ES6),
163161145 bytes¿Dónde
\n
está el carácter literal de la nueva línea? Funciona generando el cuadrante inferior derecho y reflejándolo a lo largo de ambos ejes.Editar: Guardado 2 bytes gracias a @ edc65.
(Llegué aquí a través de una pregunta duplicada que permitió un resultado de matriz que habría sido 19 bytes más corto, pero no garantizó un orden no decreciente, que desperdició 8 bytes).
fuente
fill
y una nueva línea literal\n
está el carácter de nueva línea literal" cuando hago eso) pero gracias por el otro consejo.JavaScript (ES6) 144
150Menos golf
Prueba
fuente