Im Spiel 2048 hast du ein Gitter und kannst die Elemente in vier Richtungen bewegen. Sie bewegen sich alle in diese Richtung, so weit sie können. Für diese Herausforderung erhalten Sie eine gepolsterte, quadratische 2D-Zeichenfolge (entweder mit Zeilenumbrüchen oder einer Liste von Zeichenfolgen), wie folgt:
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
oder
['ab cd e ', ' f ghij ', ' kl', 'mno p ', ' q r st ', 'u v', ' w x y ', 'z ']
Die vier Operationen sind left, right, up, und down. Das Ergebnis von jedem auf der obigen Eingabe:
Links:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
oder
['abcde ', 'fghij ', 'kl ', 'mnop ', 'qrst ', 'uv ', 'wxy ', 'z ']
Richtig:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
oder
[' abcde', ' fghij', ' kl', ' mnop', ' qrst', ' uv', ' wxy', ' z']
Oben:
abocdiel
mf ghsjv
un rp k
zq x t
w y
oder
['abocdiel', 'mf ghsjv', 'un rp k ', 'zq x t ', ' w y ', ' ', ' ', ' ']
Nieder:
b e
af c j
mn gd k
uq rhitl
zwoxpsyv
oder
[' ', ' ', ' ', ' b e ', 'af c j ', 'mn gd k ', 'uq rhitl', 'zwoxpsyv']
Ihr Ziel ist es, bei jeder Iteration zu rotieren, welche Operation ausgeführt wird, und diese an den Eingabezeiten nauszuführen. Wenn Ihre Bestellung also lautet URDLund die Eingabe lautet, dass sie mit D( 2, 0-indiziert) beginnen soll und Sie 5Operationen benötigen , führen Sie diese aus D-L-U-R-Dund drucken sie dann aus.
Eingang:
- Ein String in einem Format wie oben
- Nachgestellte Leerzeichen sind nicht erforderlich (aber wahrscheinlich hilfreich)
- Es wird mindestens 2x2 sein
- Enthält nur druckbare ASCII-Zeichen und Leerzeichen (und Zeilenumbrüche je nach Eingabeformat)
- Sie sollten theoretisch jede Länge unterstützen, aber die Speicherbeschränkungen sind in Ordnung
- Eine nicht negative Ganzzahl
nfür die Anzahl der auszuführenden Operationen - Eine Ganzzahl
0-3oder1-4ein BuchstabeUDLR, der die Operation beschreibt, mit der begonnen werden soll.- Ihr Programm muss also mit jeder Operation beginnen oder enden können
- Sie können sie zu Startzwecken in beliebiger Reihenfolge definieren, aber es muss eine konsistente Reihenfolge sein, sodass
Umanchmal nicht gefolgt werden kannRund manchmal auch nichtL.
- Operationen müssen nicht trivial ausgeführt werden
- Sie können Vorgänge in der Reihenfolge
LDRU(links, unten, rechts, oben) wiederholt ausführen , aber nichtDLRUoderUDLR(daUDist das Gleiche wieDundLRdas Gleiche wieR.)
- Sie können Vorgänge in der Reihenfolge
Ausgabe:
- Die Zeichenfolge nach den vier Operationen
nZeiten - Das Ausgabeformat muss mit Ihrem Eingabeformat übereinstimmen
- Nachgestellte Leerzeichen sind nicht erforderlich (aber wahrscheinlich hilfreich)
Beispiel:
In diesem Beispiel wird die Reihenfolge verwendet URDL.
Eingang:
10 (number of times operations are applied)
0 (starts with Up)
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
Ausgaben für n = 0-5: (nur das Endergebnis ausgeben)
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
---------------
abocdiel
mf ghsjv
un rp k
zq x t
w y
---------------
abocdiel
mfghsjv
unrpk
zqxt
wy
---------------
el
dijv
chspk
bognrxt
amfuzqwy
---------------
el
dijv
chspk
bognrxt
amfuzqwy
---------------
eljvkxty
disprqw
chgnz
bofu
am
Meine hübsche, ungolfed Implementierung