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.)
sumber
Jawaban:
Ruby, Di Ujung Dunia,
12601070967 byteAdakah yang ingat film Pirates of the Caribbean?
Masih ada banyak ruang untuk meningkatkan golf di sana, tapi ini awal.
Sekarang ada apa dengan referensi film? Rupanya Green Flash terjadi lebih sering daripada yang diharapkan oleh Jack Sparrow. Bahkan, itu terjadi sekitar seminggu sekali, bukan setiap sepuluh tahun sekali. Setiap hari Minggu saat matahari terbenam, Black Ruby (jam) melakukan satu putaran di tanah orang mati:
sumber
Java - Cute Kraken (Banyak byte)
EDIT: Perbaikan lebih lanjut untuk burung / bintang memunculkan puncak dan awan, sekarang kalender yang paling sibuk (jam 12 siang, Sabtu, Desember) bekerja sekitar 70% dari waktu. 30% lainnya saya mendapatkan (bersiap-siap untuk ini) kesalahan Stack Overflow karena saya menggunakan rekursi. Foto baru dari kalender tersibuk dan gambar Kraken baru, yang menunjukkan posisi terendah / tertinggi bintang / awan.
Sekarang lebih baik menangani situasi di mana hamburan acak bintang / burung mencegah penyisipan awan secara acak. Ketika keadaan terlalu ramai dan tidak berfungsi setelah 200 percobaan, kami melakukan ulang bintang / burung dengan harapan bahwa konfigurasi selanjutnya akan memungkinkan awan ruang pribadi.
Siapa kwaken yang lucu? Siapa kwaken yang lucu? Kamu adalah! Kamu adalah!
Suntingan kecil, masih tidak ada golf. Kwaken muncul di 9s karena dia tahu semua orang mengharapkannya di tengah malam. Dia kecil dan pemalu sekarang, tetapi suatu hari dia berharap untuk memakan kapal.
Awan memiliki kecenderungan rendah di langit, sementara bintang dan burung suka terbang di atasnya; Hal-hal cenderung agak ramai sekitar jam 8 sekalipun.
Output biasa
Output super sibuk
Jika kami akan memperkenalkan kraken kami dengan mengkode beberapa nilai, kami dapat ...
sumber
Python3 - Pirates and Jellyfish:
15801472 bytesSetiap Rabu tengah malam, kapal perompak menenggelamkan kapal kami. Kebisingan membangunkan ubur-ubur raksasa yang secara acak berkeliaran bingkai selama satu jam.
Contoh pada hari Selasa 19 Agustus 23:27
Pada hari Rabu sekitar tengah malam:
sumber
Cobra - 994
Tanpa Bunga: 994
Dengan Bouys: 1084
Pada jam 1 pagi setiap hari Minggu, hamparan laut tilde yang tak berujung menyala dengan sinar biru yang menyilaukan. Harapan kembali kepada orang-orang dari dunia shell yang sunyi.
sumber
C #
11241128bytesSekali seminggu, kapal selam ASCII yang jelek akan muncul selama satu jam di bawah permukaan air, dan meningkatkan jumlah byte saya terasa semoga kode ini benar-benar berfungsi sekarang . Saya takut memikirkan apa yang terjadi pada hari Sabtu jam 11:00 di bulan Desember ...
Kode yang agak diformat (yang menarik kembali setiap 15 detik karena saya salah membaca spec):
Contoh output (harus membaca 3:31, Rabu, 13 Agustus):
sumber
Lua - lebih dari bintang
Saya selesai!
Nah, belum selesai dilakukan. Saya sudah selesai dengan kode dan tantangan ini. Ini bukan golf, itu hilang indikator bulan. Tidak ada penghindaran ... Saya hanya mempostingnya sehingga jika tidak ada yang menyelesaikan tantangan ini, setidaknya Anda melihat sesuatu, punya ide.
Anda dapat melihatnya di sini.
sumber