Die Herausforderung
Wenn entweder eine Zeichenfolge (möglicherweise Zeilenumbrüche) oder ein zweidimensionales Array und eine positive Ganzzahl angegeben werden n
, wird die Position der Plattformen n
nach der Anfangsposition gedreht.
U, D, R, L
sind Plattformen.
^, v, >, <
sind Pfeile, die die Richtung der Plattformen ändern.
U, D, R, L
bewege dich nach oben, unten, rechts und links. Wenn sich ein Pfeil vor einer Plattform befindet, ändert er die Richtung.
Beeinflusst die Plattform:
R<
D
^
v
U
>L
>L
<
(Der obere Pfeil wirkt sich auf die Oberseite aus L
, der untere Pfeil jedoch nicht auf die Oberseite. L
)
Wird nicht beeinflussen:
<
R
>
L
v
U
D
^
<R
( R
geht richtig, hat also <
keinen Einfluss auf die R
)
Wenn dies beispielsweise die Zeichenfolge wäre:
>R <
Die Plattform R
würde sich nach rechts bewegen, bis sie fast den Pfeil berührt:
> R<
Danach würde es die Richtung ändern und nach links gehen:
> R <
(Auch wenn es jetzt nach links geht, wird sich der Brief nicht ändern.)
In einigen Fällen bewegt sich die Plattform nicht, z
>R<
oder
v
U
^
Letztes Beispiel:
v >
D Rv
^U
^ <
Nach einer Runde
v >
U v
D ^ R
^ <
Nach einer Runde
v >
D Uv
^R
^ <
Und noch eine Runde:
v >
R v
D ^ U
^ <
Sie können davon ausgehen, dass sich die Plattformen nach n
Abbiegungen nicht überlappen, dass die Plattformen nicht außerhalb der Grenzen liegen und dass eine Plattform keinen Pfeil berührt, der in die gleiche Richtung wie die Plattform zeigt.
Testfälle
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 <"
Regeln
- Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes!
- Standardlücken sind nicht zulässig.
n
Kurven nicht vom Netz gehen .Antworten:
C #, 1245 Bytes
Anfangs schien es einfacher zu sein, aber dann schrieb ich einfach weiter Code. : D.
LINQ zum Auflisten und Aktualisieren der Karte, wobei das Zeichen geändert wird, um die Bewegungsrichtung anzugeben. Die Zeichen werden vor der Rückkehr zurückgesetzt. Es wird auch davon ausgegangen, dass die Platine quadratisch ist (daher mussten einige der mehrzeiligen Testfälle geändert werden, um dieser Einschränkung zu entsprechen).
Erweitert:
quelle