Tulis program terpendek untuk mengubah setiap karya seni ASCII menjadi adegan salju animasi yang mulai terbentuk dari salju yang turun ( contoh JavaScript non-golf terakhir diperbarui 2011-12-19).
Spesifikasi input : Program Anda harus menerima kombinasi spasi, tanda bintang, dan baris baru yang berubah-ubah. Input akan berisi paling banyak 23 baris dan 80 karakter per baris. Tidak akan ada baris kosong, namun baris mungkin hanya terdiri dari spasi putih. Satu baris baru yang tertinggal akan dimasukkan dan harus diabaikan.
Keluaran : Keluaran karakter ASCII (spasi, tanda bintang) dan kode kontrol (carriage return, linefeeds, ANSI escape code, dll.) Untuk konsol teks atau emulator terminal sistem operasi Anda sampai pengguna secara manual menghentikan program. Anda dapat menganggap jendela terminal adalah 80x24 karakter jika sistem operasi Anda mengizinkan pengaturan itu.
Aturan :
- Animasi harus halus dan cepat (lebih disukai 15 fps).
- Kepadatan salju harus antara 5% dan 15%.
- Tidak lebih dari satu layar salju dapat menggulir per detik. (Itu berarti tidak lebih dari 24 baris salju baru dapat ditambahkan dalam periode waktu satu detik.)
- Salju tidak boleh menampilkan pola yang jelas saat memasuki bagian atas layar; itu harus terlihat acak.
- Program harus mengisi semua baris layar dengan salju secepat mungkin saat dimulai; pengisian awal baris individual layar tidak harus jelas bagi pemirsa.
- Sudut kiri bawah seni input ASCII harus di sudut kiri bawah layar (Gambar 1 untuk klarifikasi lebih lanjut).
- Area di dalam atau di bawah seni ASCII tidak boleh diisi secara permanen dengan tanda bintang. Namun, tanda bintang mungkin (tetapi tidak diharuskan) menggulir melalui area ini.
- Salju tidak boleh menumpuk di bagian bawah layar atau di atas salju yang ada kecuali seperti yang ditunjukkan pada input.
- Ruang yang lebih rendah harus diisi sebelum yang atas, karena mengisi ruang dalam urutan yang berlawanan membuat animasi pohon Natal terlihat sangat berbeda dari output kode asli saya. (ditambahkan 2011-12-20)
Selamat berlibur!
Gambar 1: area berlabel layar 80x24
---------------------------New snow added on this line--------------------------
|
|
----------------------------------------------------------+ |
**** | |
Snow MUST fall Snow MAY fall ----------------> **** | |
through this through these **** **** | Snow MUST fall |
area. areas of a **** **** | through this |
completed \---------> **** ****| area. |
ASCII art scene. \ *** **** ****| |
area \ \ ******* **** ****| |
\ \ ******** *** ***| (ALL CAPS terms |
(located in \ \--> ********* *** | have standard |
lower left \ ******* ****** MAY | RFC 2119 |
corner of \ ************* ** fall | meanings.) |
screen) \ *********** here | |
*** +---> **** *** | |
*** | **************** *** | |
| Snow MUST fall *** | **************** *** | |
| through this *** +---> *** | |
| area. *** | **************** *** | |
--+---------------------+*** +---> ***+----+------------------+--
| Snow MUST NOT |****************************| Snow MUST NOT |
V accumulate here. |****************************| accumulate here. V
Contoh input
Banner Golf Kode
****** ******* ******** ******** ****** ******* ** ********
** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ****** ** **** ** ** ** ******
** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** **
****** ******* ******** ******** ****** ******* ******** **
Logo Stack Overflow
****
****
**** ****
**** ****
**** ****
*** **** ****
******* **** ****
******** *** ***
********* ***
******* ******
************* **
***********
*** **** ***
*** **************** ***
*** **************** ***
*** ***
*** **************** ***
*** ***
****************************
****************************
Pohon Natal
*
*** *
* ***** ***
*** ******* * *****
***** ********* *** *
* *********** *****
* ************* *******
* *** *************** * *
*** ***** ***************** ***
***** ******* ******************* *****
******* * ********************* *******
********* * *********
* *