Descripción
La tarea de este desafío es diseñar un programa o función que rastree un objeto dado en un espacio .
I / O
Su programa recibirá 3 entradas, que se pueden tomar de cualquier manera sensata :
nserá el tamaño del lado del avión. (entonces, para , su plano será ). Puede suponer nque siempre será un número entero impar.
sserá la posición inicial del objeto, dada como un par de coordenadas .
Dserá un vector de pares ordenados. Dseguirá el formato , donde siempre será uno de 'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW', para las direcciones cardinales e intercardinales primarias, y será un número entero para el número de 'ticks'.
Dadas estas entradas, su programa debe generar un seguimiento del objeto en el plano.
Reglas
La salida debe contener los límites del plano. P.ej:
- 21012 + + ┌─────┐ 2│ │ 1│ │ 0│ │ 1│ │ 2│ │ -└─────┘
Puede usar cualquier carácter (s) para los límites, siempre que no sea un espacio en blanco (o se represente como un espacio en blanco). Los personajes que elijas deben delinear el plano completo, lo que significa que no puede haber espacios entre ellos.
Algunos planos aceptables incluyen:
┌──┐ .... ---- + - +
│ │. . El | El | El | El |
│ │. . El | El | El | El |
└──┘; ....; ----; + - +
Los aviones no aceptables incluyen:
.... .... ++++. .
. . + +. .
. + +. .
; ....; ....; + +; . .
El objeto a rastrear puede ser cualquier personaje que elija, siempre que solo ocupe 1 espacio en el plano y sea diferente de los caracteres de límite.
La traza del objeto rastreado también puede ser cualquier personaje que elija, siempre que solo ocupe 1 espacio en el plano y sea diferente del objeto.
Si el objeto golpeara un límite, se reflejará. Si al objeto todavía le quedan movimientos, seguirá moviéndose en la dirección en que se reflejó.
Como referencia, estas instrucciones se reflejan entre sí:
El resultado final contendrá las trazas más nuevas posibles, es decir, si el objeto dejara una traza en un espacio donde ya hay una traza, el carácter de traza más nuevo sobrescribirá al anterior.
Como de costumbre, las lagunas estándar están prohibidas por defecto .
Puntuación:
Este es un desafío de código de golf .
Ejemplos:
Arreglando el asunto:
0 0 ┌─────┐ │ │ │ │ 0│ ○ │ │ │ │ │ └─────┘
0 0 ┌─────┐ │ ○ │ │ \ │ 0│ \ │ │ │ │ │ └─────┘
0 0 ┌─────┐ │∧ │ │ | \ │ 0│ ○ \ │ │ │ │ │ └─────┘
0 0 ┌─────┐ │∧ │ │ | \ │ 0│└ ○ \ │ │ │ │ │ └─────┘
(Los 0 son solo para referencia, y no necesitan estar en la salida final).
0 0 ┌─────────┐ │ │ │ │ │ │ │ ∧ │ 0│ / | │ │ ○ / | │ │⟨ / │ │ \ / │ │ ∨ │ └─────────┘
0 0 ┌─────────┐ │ ○ │ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │ ∧ / / │ │⟨ \ / / │ │ \ \ / │ │ ∨ ∨ │ └─────────┘
Casos de prueba:
Salida:
0 0 ┌─────┐ │∧ │ │ | \ │ 0│└ ○ \ │ │ │ │ │ └─────┘
Entrada: , ,
Salida:
0 0 ┌─────────┐ │ ○ │ │ \ │ │ \ │ │ \ │ 0│ / | ⟩│ │ ∧ / / │ │⟨ \ / / │ │ \ \ / │ │ ∨ ∨ │ └─────────┘
Entrada: , ,
Salida:
0 0 ┌───┐ │ | │ 0│- ○ ┐│ │ | │ └───┘
Entrada: , ,
Salida:
0 0 ┌───────────┐ │ ∧ │ │ / \ │ │┌ - / - \ \ │ │ \ | / \ \ │ │ \ | \ \ │ 0│ | / ⟩│ │ | \ / / │ │ | / ○ │ │ | / \ │ │ ∨ \ │ │ \ │ └───────────┘
'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'como un entero indexado 0 (o indexado 1) en su lugar? Así se [('NW',2),('S',2),('E',1)]convierte [[7,2],[4,2],[2,1]]por ejemplo.