Sebagian besar dari kita penggemar HILANG di luar sana mengingat komputer yang Desmond harus mengetik karakter "4 8 15 16 23 42" di setiap 108 menit atau dunia akan berakhir (atau akankah itu?).
Tantangannya di sini adalah membuat program yang akan melakukan hal yang sama dengan mengharuskan setiap 108 detik input 4 8 15 16 23 42
dimasukkan atau itu akan menampilkan pesan
Sorry, the world has ended with status code -1
Seharusnya memperingatkan pengguna pada 100 detik bahwa mereka harus memasukkan nomor dengan pesan
Enter, Quick!
Program harus dapat membaca input kapan saja dan jika itu adalah input yang benar maka program akan mengatur ulang timer. Jika input yang salah diberikan tidak ada yang terjadi.
Program harus berjalan tanpa batas. Jadi garis waktu setelah input valid yang terakhir terlihat seperti
Dari 0 sampai 99 detik: tidak ada output
Pada 100 detik: Enter, Quick!
Pada 108 detik: Sorry, the world has ended with status code -1
.
Ini adalah kode golf sehingga jawaban terpendek (dalam byte) yang menyelesaikan tugas ini menang! Semoga berhasil!
sumber
Jawaban:
bash, 160 byte
Saat ini saya tidak yakin apa perilaku yang diharapkan setelah "dunia telah berakhir".
Jalankan seperti ini:
2>&-
diperlukan untuk mengabaikan STDERR, yang diizinkan secara default .sumber
JavaScript browser modern,
252247242 bytePetunjuk: jalankan ini di konsol tab kosong, klik pada dokumennya untuk mendapatkan fokus dan mulai mengetik string berulang kali. Selama Anda baik-baik saja, Anda tidak akan mendapat umpan balik sama sekali. Refresh dan ubah 1e5 ke 1e4 untuk membuat segalanya lebih menarik.
sumber
Groovy, 244 atau 228 byte
Saya salah ingat Java memiliki metode nextLine yang membutuhkan argumen berapa lama menunggu, jadi saya pikir ini akan mudah. Saya tidak dapat menemukan metode yang melakukan itu, jadi saya menerapkan ini dengan dua utas. Agak tebal. Baiklah.
Ini mengasumsikan perilaku yang tepat untuk akhir dunia adalah proses untuk keluar dengan kode status -1. Jika tingkah laku yang dimaksudkan adalah untuk tetap mengulang dan mengharapkan kekuatan eksternal untuk mengakhiri dunia (dan dengan ekstensi, program),
;System.exit(-1)
porsinya dapat dihilangkan untuk menghemat 16 byte. Yay.Saya awalnya menulis ini untuk menggunakan kode hash dari string, tetapi akhirnya lebih dari perbandingan yang tepat menanamkan string karena
hashCode
panjang.sumber
APL (Dyalog Unicode) , 144 byte SBCS
Ternyata, kedua belah pihak menjalankan APL ...
Cobalah online!
:For t:in 100 8
lingkaran dua kali, sekali dengant
(timput) sedang100
dan kemudian dengant
sebagai8
::For s:In⍳t
untuks
(econds)1
melalui dan semua ɩ ndices sampait
⎕RTL←1
atur R esponse T ime L imit ke 1 (detik){
...}
terapkan lambda anonim berikut untuk itu (meskipun argumen ini tidak digunakan)1E3::
berikut ini, jika ada pengecualian yang terjadi:⍬
kembali[]
⋄
mencoba:⍕4 8 15 16 23 42
merangkai angka-angka yang diperlukan⍞≡
meminta input dan membandingkannya (memberi 0 atau 1)⍳
yang pertama yang banyak ɩ ndices ([]
atau [1] `→
pergi ke baris itu (1 jika[1]
, lanjutkan ke baris berikutnya jika[]
):End
ujung lingkaran dalam; lanjutkan dengan detik berikutnya dari batas waktu saat init=3
apakah ini timeout kedua (0 atau 1)?...
⌽⍨
putar langkah-langkah berikut ini yang banyak:'Enter, Quick!' 'Sorry, the world has ended with status code -1'
secara implisit mencetak teks yang sesuai⊃
mengungkapkan (untuk mencetak tanpa spasi awal dan belakang):End
akhir loop luar: setelah peringatan, loop; setelah mencetak "Maaf ...", lanjutkan ke penghentian programsumber
C ++ (gcc) , 395 byte
Kompilasi di Linux membutuhkan
-pthread
sakelar. MinGW melakukannya tanpa.Cobalah online!
sumber