El reto
Dado una cadena (puede tener líneas nuevas) o una matriz bidimensional y un número entero positivo n
, la posición de las plataformas n
gira después de la posición inicial.
U, D, R, L
son plataformas
^, v, >, <
son flechas que cambian las direcciones de las plataformas.
U, D, R, L
mover hacia arriba, abajo, derecha e izquierda, respectivamente. Cuando una flecha está frente a una plataforma, cambia la dirección.
Afecta a la plataforma:
R<
D
^
v
U
>L
>L
<
(la flecha superior afectará a la superior L
, pero la flecha inferior no afectará a la superior L
)
No afectará:
<
R
>
L
v
U
D
^
<R
( R
va bien, por <
lo que no afectará R
)
Por ejemplo, si esta fuera la cadena:
>R <
La plataforma R
se movería hacia la derecha hasta casi tocar la flecha:
> R<
Después, cambiaría la dirección y comenzaría a ir a la izquierda:
> R <
(aunque ahora va a la izquierda, la letra no cambiará).
Hay algunos casos en los que la plataforma no se mueve, como
>R<
o
v
U
^
Ultimo ejemplo:
v >
D Rv
^U
^ <
Después de un turno
v >
U v
D ^ R
^ <
Después de un turno
v >
D Uv
^R
^ <
Y un turno más:
v >
R v
D ^ U
^ <
Puede suponer que las plataformas, después de los n
giros, no se superpondrán, que las plataformas no saldrán de los límites y que una plataforma no tocará una flecha que apunte en la misma dirección que la plataforma.
Casos de prueba
Input:
">R <", 4
Output:
"> R <"
Input:
">R <", 6
Output:
">R <"
Input:
">R<", 29
Output:
">R<"
Input:
"v
U
^", 5
Output:
"v
U
^"
Input:
"v
D
^", 1
Output:
"v
D
^"
Input:
"v
D
^", 4
Output:
"v
D
^"
Input:
"v >
D Rv
^U
^ < ", 2
Output:
"v >
D Uv
^R
^ <
Input:
">RL<", 3
Output:
">LR<"
Input:
">L R<", 4
Output:
"> RL <"
Input:
"> RR<
>L R <", 6
Ouput:
">RR <
> RL <"
Input:
"R <", 4
Output:
" R <"
Input:
"R <", 6
Ouput:
"R <"
Reglas
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
- Las lagunas estándar no están permitidas.
n
turnos.Respuestas:
C #, 1245 bytes
Al principio parecía más simple, pero luego seguí escribiendo más código. :RE
LINQ para enumerar y actualizar el tablero, cambiando el personaje para indicar la dirección en la que se está moviendo. Los personajes se revierten antes de regresar. También se supone que el tablero es cuadrado (por lo que tuvo que modificar algunos de los casos de prueba de varias líneas para ajustarse a esta restricción).
Expandido:
fuente