Bize şimdiki ayı, ayın gününü, haftanın gününü, saatini, dakikasını ve gece veya gündüz olup olmadığını (yıl veya saniye değil) söyleyen bir ASCII sanat saati ve takvimi yapalım.
Herhangi bir zamanda, takvim şöyle görünür: (daha az satır aralığıyla daha iyi görünür)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Her zaman, kenarları hiç değişmeyen, 66'ya 23 karakterlik bir "resim çerçevesi" dir.
Çerçeve içindeki görüntü bize saat ve tarihi gösterir:
- Gün boyunca (6:00 - 17:59) ay,
-.-
gökyüzündeki kuş sayısı ( ) ile belirlenir. Ocak = 1 kuş, Şubat = 2 kuş vb. - Gece boyunca (18: 00-05: 59), kuşlar 3 kez yıldızlarla değiştirilir (
*
). Ocak = 3 yıldız, Şubat = 6 yıldız vb. Kuşlar ve yıldızlar asla aynı anda gökyüzünde olmazlar. - Ayın
-
günü, sudaki iki çizgi ( ) arasındaki karakter sayısına göre belirlenir . örneğin~~-~~~~-~~
, ayın dördüncü günü anlamına gelir. Dakikaya bağlı olarak, teknenin kısa çizgiler arasında olması gerekebilir (kısa çizgiler etrafında dönmez). - Haftanın günü, gökyüzündeki bulutların sayısına göre belirlenir (tüm bulutlar aynı görünür). Pazar = 0 bulut , Pazartesi = 1 bulut, ..., Cumartesi = 6 bulut.
- Saat su seviyesi (ve tekne) tarafından belirlenir. En düşük seviyede (yukarıdaki gibi) saat 1, saat 2'de bir karakter daha yüksektir ve bu yüzden saat 12'ye kadar, sonra saat 1'e geri döner. (Saat 12 değil 24 saattir.)
- Dakika teknenin yatay pozisyonuna göre belirlenir. Saatin başında tekne çerçevenin sol kenarına temas eder (yukarıdaki gibi). Takip eden her dakikada tekne bir karakter sağa hareket eder. 51 - 59 dakika arasında, çerçevenin sağ tarafından tekrar sola döner.
Bu nedenle, yukarıdaki örnekte 3 kuş, 3 bulut, kısa çizgi arasında 2 karakter, en düşük seviyedeki su ve en soldaki tekne 2 Mart Çarşamba ve saatin 1 olduğunu söyleyebiliriz: 12:00.
İşte 25 Nisan Pazar, saat 3: 58'de bir başka örnek:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Hedef
Amacınız, programın çalıştırıldığı zamanı kullanarak bu ASCII sanat "takvimlerini" çıktılayan stdout'a mümkün olan en kısa programı yazmaktır.
Programın her çalışması bir zaman sahnesini göstermelidir. Güncellemeler otomatik olmamalıdır (veya canlandırılmamalıdır).
Bulutlar, yıldızlar ve kuşlar gökyüzüne rastgele yerleştirilmelidir (bu nedenle her koşu, aynı anda olanlar bile farklı olabilir). Asla kayıkla veya birbirleriyle örtüşmemeliler. (Ayrıca su çizgileri, tekne gövdesinin üstüne gelmemelidir.)
Açıkladığım hiçbir şeyin su altında görünmediğine dikkat edin. Bu senin yapman için. Her haftanın önceden belirlenmiş bir saatinde (seçiminiz), ilginç bir şey su altında çekilmelidir. Bir deniz canavarı ya da batık bir gemi ya da bir şey olabilir, bu size kalmış. Bu saat boyunca, sahnenin geri kalanının tasarımını bile değiştirebilirsiniz (çerçeve sınırlarında kalarak).
puanlama
Bu bir kod golf popülerlik yarışması combo.
Puanınız (bytes in program) - 4 * (upvotes - downvotes)
. En düşük puan kazanır.
ASCII olmayan karakterler kullanıyorsanız, http://mothereff.in/byte-counter öğesini bayt sayacı olarak kullanın .
Notlar ve Güncellemeler
Kısa çizgiler yerine şamandıralar kullanabilirsiniz, çünkü yüzleşmesine izin verin, çok daha uygunlar:
| | ~~(_)~~~(_)~~ (3rd of the month)
Kısa çizgiler (veya şamandıralar) rastgele olmak zorunda değildir, ancak olsaydı iyi olurdu.
- "Özel saatiniz", saatin başından bir sonraki saate kadar 1 dakika ile 60 dakika arasında sürmelidir.
- Özel saat boyunca su altında çektiğiniz şeyler hareket edebilir ve mantıklı olduğunda yüzeyi ve gökyüzünü değiştirebilir (örn. Tekneyi yiyen deniz canavarı, deniz tabanında kara delik vb.)