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 n
sebagai input, akan menampilkan program / fungsi baru yang melakukan hal berikut:
- Sudah beberapa
n
detik berlalu sejak program sebelumnya dijalankan? MencetakBOOM!
- Lain-lain: Cetak program / fungsi yang, ketika dijalankan dengan sendirinya, mengatur ulang timer ke
n
detik (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 ABC
dan inputnya adalah 60
detik:
ABC
& 60
keluaran 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
60
detik dijalankan pada12:00:00
. Ini output program output pertama dengan waktu mulai12:00:00
. - Program keluaran pertama ini dengan waktu mulai
12:00:00
dijalankan pada12:00:45
. Ini mengeluarkan program keluaran kedua dengan waktu mulai12:00:45
. - Program keluaran ketiga ini dengan waktu mulai
12:00:45
dijalankan pada12:01:25
. Ini mengeluarkan program keluaran keempat dengan waktu mulai12:01:25
. - Program keluaran keempat ini dengan waktu mulai
12:01:25
dijalankan 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:25
pada 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
n
detik harus berlalu. Jadi jika inputnya60
dan waktu mulai adalah12:00:00
, pada saat12:01:00
itu masih akan menampilkan program v2, tetapi pada saat12:01:01
itu 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.