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ı:
nGiriş 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ı
nsaniyelere 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 ABCve giriş 60saniyeler:
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ş
60saniyeli 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:25ile ç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:253. 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
nsaniyeler geçmiş olmalı. Yani eğer giriş60ve başlangıç zamanı ise12:00:00,12:01:00v2 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.