Tantangan:
Buat program atau fungsi yang mengambil input integer, yang menampilkan program / fungsi baru seperti yang ditentukan di bawah ini.
Memasukkan:
Integer n: Waktu dalam detik sebelum Bom Waktu meledak.
Keluaran:
Program asli yang memiliki waktu dalam detik nsebagai input, akan menampilkan program / fungsi baru yang melakukan hal berikut:
- Sudah beberapa
ndetik berlalu sejak program sebelumnya dijalankan? MencetakBOOM! - Lain-lain: Cetak program / fungsi yang, ketika dijalankan dengan sendirinya, mengatur ulang timer ke
ndetik (dan bertindak sama seperti program / fungsi yang pertama kali dikeluarkan).
CATATAN: Ini tidak persis sama dengan program / fungsi keluaran pertama (dalam kebanyakan bahasa setidaknya), karena waktu mulai telah berubah (lihat contoh klarifikasi di bawah).
Contoh kode semu:
Katakanlah program aslinya ABCdan inputnya adalah 60detik:
ABC& 60keluaran DEF(60).
- Jika
DEF(60)dijalankan dalam 60 detik, itu akan menghasilkanDEF_G(60), yang bertindak persis samaDEF(60), tetapi dengan waktu mulai yang baru. - Jika
DEF(60)dijalankan setelah 60 detik, itu akan ditampilkanBOOM!.
Contoh klarifikasi yang saya maksud dengan 'waktu mulai':
- Program dasar dengan input
60detik dijalankan pada12:00:00. Ini output program output pertama dengan waktu mulai12:00:00. - Program keluaran pertama ini dengan waktu mulai
12:00:00dijalankan pada12:00:45. Ini mengeluarkan program keluaran kedua dengan waktu mulai12:00:45. - Program keluaran ketiga ini dengan waktu mulai
12:00:45dijalankan pada12:01:25. Ini mengeluarkan program keluaran keempat dengan waktu mulai12:01:25. - Program keluaran keempat ini dengan waktu mulai
12:01:25dijalankan pada12:05:00. Ini akan menampilkanBOOM!.
Perhatikan bagaimana output pertama akan dicetak BOOM!setelahnya 12:01:00, tetapi program output telah berkembang sehingga meskipun 12:01:25pada langkah 3, itu masih akan menampilkan program berikutnya sebagai gantinya BOOM!(karena program output-of-output telah memulai waktu di luar program output pertama) .
Aturan Tantangan:
- Aturan quine default berlaku.
- Setidaknya
ndetik harus berlalu. Jadi jika inputnya60dan waktu mulai adalah12:00:00, pada saat12:01:00itu masih akan menampilkan program v2, tetapi pada saat12:01:01itu akan menampilkanBOOM!. - Program output tidak akan mengambil input apa pun ( kecuali untuk parameter kosong yang tidak digunakan jika lebih pendek ). Waktu mulai harus diberikan ke program berikutnya sebagai nilai 'hard-coded' (itulah sebabnya output dari program output tidak persis sama dengan yang sebelumnya (dalam kebanyakan bahasa).
- Hanya ukuran program / fungsi utama Anda yang dihitung dalam satuan byte.
- Anda dapat menampilkan program / fungsi baik sebagai string (atau format wajar yang sebanding, seperti byte / array karakter / daftar), sebagai fungsi jika bahasa Anda mendukung ini, atau format wajar lainnya (tanyakan apakah Anda tidak yakin).
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.