Nel gioco 2048, hai una griglia e puoi spostare gli elementi in quattro direzioni. Si muovono tutti in quella direzione il più lontano possibile. Per questa sfida, ti verrà data una stringa 2D quadrata imbottita (con nuove righe o un elenco di stringhe), in questo modo:
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
o
['ab cd e ', ' f ghij ', ' kl', 'mno p ', ' q r st ', 'u v', ' w x y ', 'z ']
Le quattro operazioni sono left, right, upe down. Il risultato di ciascuno sull'input sopra:
Sinistra:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
o
['abcde ', 'fghij ', 'kl ', 'mnop ', 'qrst ', 'uv ', 'wxy ', 'z ']
Giusto:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
o
[' abcde', ' fghij', ' kl', ' mnop', ' qrst', ' uv', ' wxy', ' z']
Su:
abocdiel
mf ghsjv
un rp k
zq x t
w y
o
['abocdiel', 'mf ghsjv', 'un rp k ', 'zq x t ', ' w y ', ' ', ' ', ' ']
Giù:
b e
af c j
mn gd k
uq rhitl
zwoxpsyv
o
[' ', ' ', ' ', ' b e ', 'af c j ', 'mn gd k ', 'uq rhitl', 'zwoxpsyv']
Il tuo obiettivo è ruotare quale operazione viene eseguita ogni iterazione, eseguendola sui ntempi di input . Quindi, se il tuo ordine è URDL, e l'input dice di iniziare con D( 2, 0-indicizzato), e hai bisogno di 5operazioni, esegui D-L-U-R-D, quindi stampa.
Ingresso:
- Una stringa in un formato come sopra
- Gli spazi finali non sono richiesti (ma probabilmente sono utili)
- Sarà almeno 2x2
- Conterrà solo ASCII e spazi stampabili (e newline per il formato di input)
- Teoricamente dovresti supportare qualsiasi lunghezza, ma i vincoli di memoria vanno bene
- Un numero intero non negativo
n, per il numero di operazioni che verranno eseguite - Un numero intero
0-3o1-4, o una letteraUDLR, che descrive l'operazione con cui iniziare.- Quindi il tuo programma deve poter iniziare o terminare con qualsiasi operazione
- Puoi definirli in qualsiasi ordine per scopi iniziali, ma deve essere un ordine coerente, quindi
Ua volte non può seguireRe talvolta anche seguireL.
- Le operazioni devono essere eseguite in modo non banale
- È possibile eseguire più volte le operazioni nell'ordine
LDRU(sinistra, giù, destra, su), ma nonDLRUoppureUDLR(perchéUDè uguale aD, edLRè uguale a fare semplicementeR).
- È possibile eseguire più volte le operazioni nell'ordine
Produzione:
- La stringa dopo aver eseguito le quattro operazioni
nvolte - Il formato di output deve essere uguale al formato di input
- Gli spazi finali non sono richiesti (ma probabilmente sono utili)
Esempio:
Questo esempio usa l'ordine URDL.
Ingresso:
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
Output per n = 0-5: (basta stampare il risultato finale)
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
La mia implementazione carina e non rigata