Referensi xkcd 1688 :
Tugas Anda adalah untuk mengurangi usia peta dengan mengajukan pertanyaan kepada pengguna. Pertanyaan-pertanyaan ini harus persis sama dengan dalam panduan xkcd, kecuali dari kapitalisasi dan baris baru tambahan. Selain itu, Anda harus memberi pengguna beberapa opsi untuk dipilih, yang tidak harus dalam urutan seperti pada gambar xkcd. Jika input tidak cocok dengan jawaban yang diharapkan, program / fungsi Anda mungkin berperilaku dengan cara yang tidak ditentukan. Pada akhirnya, Anda harus menampilkan tahun / berapa kali peta dibuat.
Contoh ( >
menunjukkan input, tetapi Anda dapat memilih sesuatu yang lain):
Contoh 1:
ISTANBUL OR CONSTANTINOPLE?
(CONSTANTINOPLE, NEITHER, ISTANBUL)
>ISTANBUL
DOES THE SOVIET UNION EXISTS?
(YES, NO)
>NO
ZAIRE?
OR: 'HONG KONG (UK)'
(YES, NO)
>NO
SERBIA / MONTENEGRO ARE?
(ONE COUNTRY, TWO COUNTRIES)
>TWO COUNTRIES
HOW MANY SUDANS ARE THERE?
(ONE, TWO)
>ONE
2007-11
Contoh 2:
ISTANBUL OR CONSTANTINOPLE?
(CONSTANTINOPLE, NEITHER, ISTANBUL)
>how are you
error
code-golf
kolmogorov-complexity
corvus_192
sumber
sumber
Jawaban:
Game Maker Language (GM 8,0),
10.26210.22810.15210.1158.7461 + 8699 = 8700 bytesKami mendefinisikan sebuah skrip bernama
X
(1 byte). Setiap pertanyaan diberi label dengan bilangan bulat.X
mengambil bilangan bulat seperti itu, meminta pengguna dengan pertanyaan yang sesuai, dan mengembalikan pesan yang sesuai atau memanggil pertanyaan berikutnya. Pada setiap pertanyaan, pengguna diminta untuk integer yang sesuai dengan opsi yang memungkinkan. Jika pengguna tidak cocok dengan salah satu opsi, maka prompt keluar.#
adalah karakter baris baru.Bagaimana cara menjalankannya
.gmk
File baruX
dengan konten seperti di atasO
dengan Buat Acara: jalankan kode:X(1)
R
dan letakkan satu contohO
di dalamnyaGolf
YES
sekarang selalu mendahuluiNO
, dan kami mendefinisikan stringY="##YES (1), NO (2)"
untuk digunakan kembali."IS THERE A BIG LAKE IN THE MIDDLE OF "
dan"HOW MANY "
cukup lama dan muncul cukup banyak untuk singkatan untuk membayar. Mereka ditugaskan untukI
danH
.X
dirinya sendiri, bukan skrip terpisah, untuk menyingkatget_integer
danshow_message
. Secara eksplisit,X
dipanggil dengan argumen nolH
, maka ia mengembalikanshow_message
argumen pertama.X
dipanggil dengan argumen nolI
, maka ia mengembalikanget_integer
argumen pertama, menunjukkan input default1
.Tidak disatukan , dengan opsi dalam urutan asli dan tanpa singkatan sama sekali:
Sistem penomoran
YES
,NO
opsi untuk menyimpan bytesumber
YES
dulu untuk menghindari mendefinisikanN="##NO (1), YES (2)"
. Terima kasih.