Pada adegan pembukaan Dark Knight naik , ada dialog yang agak canggung antara agen CIA dan penjahat Bane.
Agen CIA: "Jika saya melepas [topeng] itu, apakah Anda akan mati?"
Bane: "Akan sangat menyakitkan ..."
Agen CIA: "Anda pria besar."
Bane: "... untukmu."
Tidak pasti apakah Bane bermaksud mengatakan "menyakitkan untukmu" atau "pria besar untukmu". Mari kita selesaikan masalah ini sekali untuk semua melalui golf kode!
Tantangan
Tugas Anda adalah menulis sebuah program yang menata ulang dialog di atas tergantung pada bilangan bulat yang diberikan sebagai input.
Kata-kata dialog agen CIA adalah:
If
I
pull
that
off
will
you
die?
You're
a
big
guy.
Kata-kata dialog Bane adalah:
It
would
be
extremely
painful...
for
you!
Harap dicatat bahwa die?
, You’re
, painful...
dan you!
dianggap sebagai satu kata.
- Diberikan integer n sebagai input, konversikan ke biner
- Membaca digit biner dari kiri ke kanan, menampilkan kata berikutnya dari dialog agen CIA jika digitnya
1
, dan kata berikutnya dari dialog Bane jika digitnya0
. Kata-kata harus dipisahkan oleh spasi. Ketika pembicara berubah, tambahkan umpan baris. Juga, awali setiap baris dialog dengan nama pembicara (BANE:
atauCIA:
).
Anda dapat mengasumsikan bahwa input selalu dimulai dengan 1 dalam bentuk biner, dan memiliki 12 angka dan 7 angka nol.
Contoh
522300
Dikonversi ke biner:
1111111100000111100
Angka dimulai dengan 8 yang, jadi kami mengeluarkan 8 kata pertama dari dialog agen CIA, dan awali dengan CIA:
CIA: If I pull that off will you die?
Lalu kami mendapat 5 nol, jadi kami mendapatkan 5 kata pertama dari dialog Bane:
BANE: It would be extremely painful...
Lalu ada 4 yang, jadi kami mengeluarkan 4 kata CIA berikutnya:
CIA: You’re a big guy.
Lalu 2 nol:
BANE: for you!
Hasil akhir:
CIA: If I pull that off will you die?
BANE: It would be extremely painful...
CIA: You’re a big guy.
BANE: for you!
Lebih banyak kasus uji:
494542
CIA: If I pull that
BANE: It would be
CIA: off
BANE: extremely
CIA: will you die? You're
BANE: painful... for
CIA: a big guy.
BANE: you!
326711
CIA: If
BANE: It would
CIA: I pull that off will you
BANE: be extremely painful... for
CIA: die? You're
BANE: you!
CIA: a big guy.
Jawaban:
Pyth - 138 byte
Saya harus melihat ke dalam mengompresi naskah film.
Test Suite .
sumber
JavaScript (ES6),
203201 byteSunting: menyimpan 2 byte dengan meminjam
trim()
ide dari ETHproduk tanpa malu-maluUji kasus
Tampilkan cuplikan kode
sumber
JavaScript (ES6),
209202201 bytePendekatan lama:
Cuplikan tes
sumber
trim()
ide Anda tanpa malu-malu . Saya yakin ada sesuatu yang lebih baik daripadaslice(1)
tetapi tidak bisa mengetahuinya.C ++ 11 (GCC),
298293 byteFungsi lambda yang mengambil integer dan mengembalikan dialog sebagai a
std::string
. Anda dapat melihatnya beraksi di sini .Versi tidak dikoleksi (dengan beberapa penjelasan):
sumber
JavaScript (ES6),
252 227226 bytePemakaian
Catatan
Ini golf-in-progress, saya pikir saya masih bisa memotong beberapa byte, tetapi jangan ragu untuk meninggalkan saran di komentar.
sumber
Python 3.6, 232 byte
Edit , setara:
sumber
Japt, 121 byte
Berisi banyak unsintables, jadi sebaiknya Anda mengujinya secara daring .
sumber
Perl 6 , 211 byte
sumber
C #,
398390385396389 byteLuncurkan dengan nomor input sebagai parameter.
Tidak Disatukan:
Kembali ke 396 byte karena saya tidak melihat aturan "tidak ada baris baru di awal".
sumber
s.Replace("1",c[k++]).Replace("0",b[l++])
tidak diganti dengan kata-kata yang sesuai. Sepertinya, C # akan mengganti string sekali dan menamparnya di tempat.Ruby, 204 + 1 = 205 byte
Membutuhkan
-n
bendera.sumber
PHP, 198 byte
sumber
Perl, 205 byte
Masukkan itu ke dalam file bernama 494542 dan jalankan seperti ini:
Diuji pada perl v5.22
sumber
Clojure, 401 byte
Doa:
Tidak disatukan
sumber