Tantangan
Diberikan input string, tampilkan versi yang dihancurkan.
Proses
P
r Pr r
o o o
g g g
r r r rogr r
a -> a -> a -> a -> a -> -> -> -> ->
m m m m m
m m m m m mmar m
i i i i i i i mi m
n n n n gn gn gn gn gni mgni
g g Pg Pg roPg roPg roPgmar roPgmar roPgmar roPgmar
- Tempatkan string secara vertikal.
- Pilih bilangan bulat acak antara
1
dan(height of the column of characters) - 1
dan arah acak (kiri atau kanan). - Putar jumlah karakter ke arah itu (jika ruang itu kosong, lanjutkan ke langkah 4; jika tidak, kembali ke langkah 2).
- Biarkan karakter tersebut jatuh karena gravitasi.
- Ulangi sampai ketinggian kolom karakter paling
1
besar lebih tinggi dari ketinggian kolom di sebelahnya (yaitu menjadi mustahil untuk menghancurkan lebih lanjut ("langkah 2-4") kolom). - Jika ada kolom karakter lain yang lebih dari
1
karakter lebih tinggi dari satu atau lebih kolom di sekitarnya (yaitu dapat dihancurkan), berulang kali hancurkan kolom itu hingga tidak lagi dapat dihancurkan. Jika ada beberapa kolom yang dapat dihancurkan, hancurkan kolom tertinggi secara penuh (jika ada beberapa kolom tertinggi, hancurkan sepenuhnya kolom yang paling kiri). - Ulangi sampai semua kolom tidak lagi dapat dibongkar.
Jika ada karakter spasi di input, hancurkan yang pertama, sekaligus.
C
o
d
e -> oC -> -> ...
de
G G G
o o o
l l l
f f defoC
Aturan
- Celah standar dilarang.
- Trailing dan baris baru diizinkan.
- Program Anda dapat mencetak atau mengembalikan string / setara.
- Outputnya harus non-deterministik (kecuali input tidak dapat dibongkar).
Ini adalah kode-golf , sehingga kiriman dengan jumlah byte terkecil dalam bahasa mereka menang!
1
Saya akan meragukan jika acak benar-benar diperlukan di sini
—
Keyu Gan
@ Kaneyan Saya pikir tantangannya akan cukup sepele jika orang harus memilih jumlah karakter yang tetap dan berganti-ganti kiri / kanan.
—
JungHwan Min
Kita masih bisa mengatakan bahwa 4 adalah acak dan dikembalikan dengan lemparan dadu yang adil
—
kata ganti saya adalah monicareinstate
@ Seseorang
—
JungHwan Min
4
akan membuat output deterministik, yaitu bukan "acak." Mengedit aturan untuk membuatnya eksplisit.
@ seseorang yang Anda rujuk pada 4 karena XKCD ?
—
Giacomo Garabello