Le défi
Étant donné soit une chaîne (peut avoir des sauts de ligne), soit un tableau à deux dimensions et un entier positif n
, la position des plates n
- formes sort après la position initiale.
U, D, R, L
sont des plates-formes.
^, v, >, <
sont des flèches qui changent les directions des plates-formes.
U, D, R, L
déplacer respectivement vers le haut, le bas, la droite et la gauche. Lorsqu'une flèche se trouve devant une plate-forme, elle change de direction.
Affecte la plateforme:
R<
D
^
v
U
>L
>L
<
(la flèche du haut affectera le haut L
, mais la flèche du bas n'affectera pas le haut L
)
N'affectera pas:
<
R
>
L
v
U
D
^
<R
( R
va bien, donc <
n'affectera pas le R
)
Par exemple, si c'était la chaîne:
>R <
La plate R
- forme se déplacerait vers la droite jusqu'à ce qu'elle touche presque la flèche:
> R<
Après, cela changerait la direction et commencerait à aller à gauche:
> R <
(même si maintenant ça va à gauche, la lettre ne changera pas.)
Il y a des cas où la plateforme ne bouge pas, comme
>R<
ou
v
U
^
Dernier exemple:
v >
D Rv
^U
^ <
Après un tour,
v >
U v
D ^ R
^ <
Après un tour,
v >
D Uv
^R
^ <
Et encore un tour:
v >
R v
D ^ U
^ <
Vous pouvez supposer que les plates-formes, après les n
virages, ne se chevaucheront pas, que les plates-formes ne sortiront pas des limites et qu'une plate-forme ne touchera pas une flèche qui pointe dans la même direction que la plate-forme.
Cas de test
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 <"
Règles
- C'est le golf de code , donc la réponse la plus courte en octets gagne!
- Les failles standard ne sont pas autorisées.
n
virages.Réponses:
C #, 1245 octets
Cela semblait plus simple au début, mais ensuite j'ai continué à écrire plus de code. :RÉ
LINQ pour énumérer et mettre à jour le tableau, en changeant le caractère pour indiquer la direction dans laquelle il se déplace. Les personnages sont rétablis avant de revenir. Suppose également que la carte est carrée (a donc dû modifier certains des cas de test multilignes pour s'adapter à cette restriction).
Étendu:
la source