O desafio
Dada uma sequência (pode ter novas linhas) ou uma matriz bidimensional e um número inteiro positivo n
, a posição das plataformas n
gira após a posição inicial.
U, D, R, L
são plataformas.
^, v, >, <
são flechas que mudam as direções das plataformas.
U, D, R, L
mova para cima, para baixo, direita e esquerda, respectivamente. Quando uma seta está na frente de uma plataforma, ela muda a direção.
Afeta a plataforma:
R<
D
^
v
U
>L
>L
<
(a seta superior afetará o topo L
, mas a seta inferior não afetará o topo L
)
Não afetará:
<
R
>
L
v
U
D
^
<R
( R
está dando certo, <
não afeta o R
)
Por exemplo, se essa fosse a sequência:
>R <
A plataforma R
se moveria para a direita até quase tocar na seta:
> R<
Depois, mudaria a direção e começaria a ir para a esquerda:
> R <
(embora agora esteja indo embora, a letra não será alterada.)
Existem alguns casos em que a plataforma não se move, como
>R<
ou
v
U
^
Último exemplo:
v >
D Rv
^U
^ <
Depois de um turno,
v >
U v
D ^ R
^ <
Depois de um turno,
v >
D Uv
^R
^ <
E mais uma vez:
v >
R v
D ^ U
^ <
Você pode assumir que as plataformas, depois das n
curvas, não se sobrepõem, que as plataformas não saem dos limites e que uma plataforma não toca em uma seta que aponta para a mesma direção que a plataforma.
Casos de teste
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 <"
Regras
- Isso é código-golfe , então a resposta mais curta em bytes vence!
- As brechas padrão não são permitidas.
n
curvas.Respostas:
C #, 1245 bytes
Parecia mais simples no começo, mas depois continuei escrevendo mais código. : D
LINQ para enumerar e atualizar o quadro, alterando o caractere para indicar a direção em que ele está se movendo. Os caracteres são revertidos antes de retornar. Também assume que a placa é quadrada (portanto, foi necessário modificar alguns dos casos de teste de várias linhas para atender a essa restrição).
Expandido:
fonte