Meydan okuma:
Aşağıda belirtildiği gibi yeni bir program / işlev çıkaran bir tamsayı girişi alan bir program veya işlev oluşturun.
Giriş:
Tamsayı n
: Saatli Bomba patlamadan önceki saniye cinsinden süre.
Çıktı:
n
Giriş olarak saniye cinsinden zamanı olan orijinal program , aşağıdakileri yapan yeni bir program / işlev çıkarır:
- Has
n
önceki programı çalıştırıldı beri saniye geçti? YazdırBOOM!
- Else: Kendi kendini çalıştırdığında zamanlayıcıyı
n
saniyelere sıfırlayan (ve ilk çıkan program / fonksiyonla aynı şekilde çalışan) bir program / fonksiyon yazdırın .
NOT: İlk çıkış programı / işlevi ile tam olarak aynı değildir (en azından çoğu dilde), çünkü başlangıç zamanı değişmiştir (aşağıdaki açıklama örneğine bakınız).
Sahte kod örneği:
Diyelim ki orijinal program ABC
ve giriş 60
saniyeler:
ABC
& 60
çıktılar DEF(60)
.
- Eğer
DEF(60)
, 60 saniye içinde o olacak çıkışı çalıştırılırDEF_G(60)
tam olarak aynı davranır,DEF(60)
ancak yeni bir başlangıç zamanı ile. - Eğer
DEF(60)
60 saniye sonra çalıştırılır, yani çıkış olacakBOOM!
.
'Başlangıç zamanı' ile ne demek istediğimi açıklama örneği:
- Giriş
60
saniyeli temel program şu konumda çalıştırılır12:00:00
. İlk çıkış programını başlangıç zamanı ile verir12:00:00
. - Başlangıç zamanı olan bu ilk çıkış programı saatinde
12:00:00
çalıştırılır12:00:45
. Başlangıç zamanı olan ikinci bir çıktı programı çıkarır12:00:45
. - Başlangıç zamanı olan bu üçüncü çıkış programı saatinde
12:00:45
çalıştırılır12:01:25
. Başlangıç zamanı olan dördüncü bir çıktı programı çıkarır12:01:25
. - Bu dördüncü çıkış programı başlangıç saati
12:01:25
ile çalıştırılır12:05:00
. Çıktı verecektirBOOM!
.
İlk çıktının BOOM!
ardından nasıl yazdırılacağına dikkat edin 12:01:00
, ancak çıktı programı 12:01:25
3. adımda olmasına rağmen ilerlemiştir , bunun yerine bir sonraki programın çıktısını almaya devam edecektir BOOM!
(çünkü çıktı çıktı programlarının ilk çıktı programının ötesinde başlama saatleri vardır) .
Zorluk Kuralları:
- Varsayılan quine kuralları geçerlidir.
- En azından
n
saniyeler geçmiş olmalı. Yani eğer giriş60
ve başlangıç zamanı ise12:00:00
,12:01:00
v2 programının çıktısını almaya devam eder, fakat12:01:01
çıktı verirBOOM!
. - Çıktı programları herhangi bir girdi almaz ( daha kısa ise kullanılmayan boş bir parametre hariç ). Başlangıç zamanı, sonraki programlara 'sabit kodlanmış' değer olarak verilmelidir (bu nedenle bir çıktı programının çıktısı bir öncekiyle tam olarak aynı değildir (çoğu dilde).
- Sadece ana programınızın / fonksiyonunuzun boyutu bayt cinsinden sayılır.
- Programı / işlevi dize (ya da bayt / karakter dizisi / liste gibi karşılaştırılabilir makul biçim), diliniz destekliyorsa işlev olarak ya da diğer makul biçimler olarak çıktı alabilirsiniz (lütfen emin değilseniz sorun).
Genel kurallar:
- Bu kod golf, bayt cinsinden çok kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için olabildiğince kısa bir cevap bulmaya çalışın. - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, fonksiyon / yöntemi uygun parametreler ve dönüş tipi, tam programlar ile kullanmanıza izin verilir. Çağrınız.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, gerekirse bir açıklama ekleyin.