Dalam permainan 2048, Anda memiliki kisi, dan Anda dapat memindahkan elemen dalam empat arah. Mereka semua bergerak ke arah itu sejauh yang mereka bisa. Untuk tantangan ini, Anda akan diberi string 2D persegi berlapis (baik dengan baris baru, atau daftar string), seperti:
ab cd e
f ghij
kl
mno p
q r st
u v
w x y
z
atau
['ab cd e ', ' f ghij ', ' kl', 'mno p ', ' q r st ', 'u v', ' w x y ', 'z ']
Empat operasi yang left
, right
, up
, dan down
. Hasil masing-masing pada input di atas:
Kiri:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
atau
['abcde ', 'fghij ', 'kl ', 'mnop ', 'qrst ', 'uv ', 'wxy ', 'z ']
Baik:
abcde
fghij
kl
mnop
qrst
uv
wxy
z
atau
[' abcde', ' fghij', ' kl', ' mnop', ' qrst', ' uv', ' wxy', ' z']
Naik:
abocdiel
mf ghsjv
un rp k
zq x t
w y
atau
['abocdiel', 'mf ghsjv', 'un rp k ', 'zq x t ', ' w y ', ' ', ' ', ' ']
Turun:
b e
af c j
mn gd k
uq rhitl
zwoxpsyv
atau
[' ', ' ', ' ', ' b e ', 'af c j ', 'mn gd k ', 'uq rhitl', 'zwoxpsyv']
Tujuan Anda adalah memutar operasi mana yang dilakukan setiap iterasi, dan menjalankannya pada waktu input n
. Jadi jika pesanan Anda adalah URDL
, dan input mengatakan mulai dengan D
( 2
, 0-diindeks), dan Anda perlu 5
operasi, Anda lakukan D-L-U-R-D
, kemudian cetak.
Memasukkan:
- Sebuah string dalam format seperti di atas
- Ruang tambahan tidak diperlukan (tetapi mungkin membantu)
- Paling tidak akan 2x2
- Hanya akan berisi ASCII dan spasi yang dapat dicetak (dan baris baru per format input Anda)
- Secara teoritis Anda harus mendukung panjang apa pun, tetapi kendala memori tidak masalah
- Integer non-negatif
n
,, untuk jumlah operasi yang akan dilakukan - Integer
0-3
atau1-4
, atau suratUDLR
, yang menjelaskan operasi untuk memulai.- Jadi program Anda harus dapat memulai atau mengakhiri dengan operasi apa pun
- Anda dapat menentukannya dalam urutan apa pun untuk tujuan awal, tetapi haruslah urutan yang konsisten, sehingga
U
terkadang tidak dapat mengikutiR
dan juga terkadang mengikutiL
.
- Operasi harus dilakukan secara non-sepele
- Anda bisa melakukan operasi dalam urutan
LDRU
(kiri, bawah, kanan, atas) berulang kali, tetapi tidakDLRU
atauUDLR
(karenaUD
sama sepertiD
, danLR
sama seperti melakukanR
.)
- Anda bisa melakukan operasi dalam urutan
Keluaran:
- Tali setelah melakukan empat
n
kali operasi - Format output harus sama dengan format input Anda
- Ruang tambahan tidak diperlukan (tetapi mungkin membantu)
Contoh:
Contoh ini menggunakan perintah URDL
.
Memasukkan:
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 untuk n = 0-5: (cetak saja hasil akhirnya)
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
Implementasi saya yang cantik dan tidak serigala