Mari kita buat jam dan kalender seni ASCII yang memberi tahu kita bulan saat ini, hari dalam sebulan, hari dalam seminggu, jam, menit, dan apakah itu malam atau hari (tapi bukan tahun atau detik).
Pada waktu tertentu, kalender akan terlihat seperti ini: (terlihat lebih baik dengan jarak garis yang lebih sedikit)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Itu selalu "bingkai foto" 66 dengan 23 karakter yang batasnya tidak pernah berubah.
Gambar di dalam bingkai memberi tahu kita waktu dan tanggal:
- Pada siang hari (6:00 pagi - 5:59 sore) bulan ditentukan oleh jumlah burung (
-.-
) di langit. Januari = 1 burung, Februari = 2 burung, dll. - Pada malam hari (6:00 sore - 5:59 pagi) burung diganti dengan bintang 3 kali lebih banyak (
*
). Januari = 3 bintang, Februari = 6 bintang, dll. Burung dan bintang tidak pernah ada di langit pada saat yang bersamaan. - Hari dalam sebulan ditentukan oleh jumlah karakter antara dua tanda hubung (
-
) di atas air. mis.~~-~~~~-~~
berarti ini adalah hari keempat dalam sebulan. Tergantung pada menit, perahu mungkin harus berada di antara garis putus-putus (tanda garis tidak berputar-putar). - Hari dalam seminggu ditentukan oleh jumlah awan di langit (semua awan terlihat sama). Minggu = 0 awan , Senin = 1 awan, ..., Sabtu = 6 awan.
- Jam ditentukan oleh tingkat air (dan kapal). Paling rendah (seperti di atas) adalah 1 jam, selama 2 jam itu adalah satu karakter lebih tinggi, dan seterusnya hingga 12 jam, lalu kembali ke 1 jam. (Ini jam 12 bukan jam 24).
- Menit ditentukan oleh posisi horizontal kapal. Di bagian atas jam kapal menyentuh tepi kiri bingkai (seperti di atas). Pada setiap menit berikutnya, kapal bergerak ke kanan dengan satu karakter. Pada menit ke 51 hingga 59, loop dari sisi kanan frame kembali ke kiri.
Jadi, mengingat bahwa contoh di atas memiliki 3 burung, 3 awan, 2 karakter di antara garis-garis, air di tingkat terendah, dan perahu di paling kiri kita dapat mengatakan bahwa tanggalnya adalah Rabu 2 Maret, dan waktu adalah 1: 00:00
Berikut adalah contoh lain dari Minggu 25 April, jam 3:58:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Tujuan
Tujuan Anda adalah untuk menulis program sesingkat mungkin yang menghasilkan "kalender" seni ASCII ini untuk berhenti menggunakan waktu ketika program dijalankan.
Setiap menjalankan program harus menampilkan satu adegan waktu. Pembaruan tidak boleh otomatis (atau dianimasikan).
Awan, bintang, dan burung, harus ditempatkan secara acak di langit (jadi setiap kali berlari, bahkan yang pada waktu bersamaan kemungkinan akan berbeda). Mereka tidak boleh tumpang tindih dengan kapal atau satu sama lain. (Juga garis air seharusnya tidak tumpang tindih dengan lambung kapal.)
Perhatikan bahwa tidak ada yang saya jelaskan muncul di bawah air. Ini untuk Anda lakukan. Selama satu jam yang telah ditentukan setiap minggu (pilihan Anda), sesuatu yang menarik harus diambil di bawah air. Bisa jadi monster laut atau kapal karam atau apa pun, terserah Anda. Selama jam itu Anda bahkan dapat mengubah desain sisa adegan (tinggal di batas bingkai).
Mencetak gol
Ini adalah kombo kontes-popularitas kode-golf.
Skor Anda adalah (bytes in program) - 4 * (upvotes - downvotes)
. Skor terendah menang.
Gunakan http://mothereff.in/byte-counter sebagai penghitung byte jika Anda menggunakan karakter non-ASCII.
Catatan dan Pembaruan
Anda dapat menggunakan pelampung alih-alih tanda hubung, karena, mari kita hadapi itu, pelampung itu jauh lebih tepat:
| | ~~(_)~~~(_)~~ (3rd of the month)
Tanda hubung (atau pelampung) tidak harus acak tetapi akan lebih baik jika itu terjadi.
- "Jam khusus" Anda harus berlangsung 60 menit dari awal jam menjadi 1 menit sebelum jam berikutnya.
- Selama jam khusus hal-hal yang Anda gambar di bawah air dapat bergerak dan dapat mengubah permukaan dan langit ketika hal itu masuk akal (mis. Monster laut memakan perahu, pembentukan lubang hitam di dasar laut, dll.)