Herhangi bir ASCII sanat eserini, yağan kardan oluşmaya başlayan hareketli bir kar sahnesine dönüştürmek için en kısa programı yazınız .
Girdi belirtimi : Programınız isteğe bağlı boşluk, yıldız işareti ve yeni satır kombinasyonlarını kabul etmelidir. Giriş en fazla 23 satır ve satır başına 80 karakter içerecektir. Boş satır olmayacak, ancak satır yalnızca boşluktan oluşabilir. Bir izleyen yeni satır eklenecek ve dikkate alınmaması gerekiyor.
Çıktı : Kullanıcı programı el ile sonlandırana kadar işletim sisteminizin metin konsolu veya terminal emülatörü için ASCII karakterlerini (boşluklar, yıldız işaretleri) ve kontrol kodlarını (satır başları, satır beslemeleri, ANSI çıkış kodları, vb.) Çıkış. İşletim sisteminiz bu ayara izin veriyorsa, terminal penceresinin 80x24 karakter olduğunu varsayabilirsiniz.
Kurallar :
- Animasyon düzgün ve hızlı olmalıdır (15 fps tercih edilir).
- Kar yoğunluğu% 5 ile% 15 arasında olmalıdır.
- Saniyede birden fazla kar ekranı kaydırılamaz. (Bu, herhangi bir saniyede 24 satırdan fazla yeni kar eklenmeyeceği anlamına gelir.)
- Kar, ekranın üst kısmına girdiğinde bariz bir desen göstermemelidir; rastgele görünmeli.
- Program, ekranın tüm satırlarını başladığında olabildiğince çabuk karla doldurmalıdır; Ekranın bireysel satırlarının ilk kez doldurulması izleyiciye açık olmamalıdır.
- Giriş ASCII resminin sol alt köşesi, ekranın sol alt köşesinde olmalıdır (daha fazla açıklama için Şekil 1).
- ASCII sanatının içindeki veya altındaki alanlar kalıcı olarak yıldızlarla doldurulmamalıdır. Bununla birlikte, yıldızlar bu alanda ilerleyebilir (ancak zorunlu değildir).
- Girişte gösterilenler dışında ekranın altında veya mevcut karın üzerinde kar birikmemelidir.
- Karşılıklı boşluklar Noel ağacı animasyonunu orijinal kodumun çıktısından çok farklı gösterdiğinden, daha düşük boşluklar üst boşluklardan önce doldurulmalıdır. (2011-12-20 arası eklendi)
Mutlu tatiller!
Şekil 1: 80x24 ekranın etiketli alanları
---------------------------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
Örnek girişler
Kod Golf Afişi
****** ******* ******** ******** ****** ******* ** ********
** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ****** ** **** ** ** ** ******
** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** **
****** ******* ******** ******** ****** ******* ******** **
Yığın Taşması Logosu
****
****
**** ****
**** ****
**** ****
*** **** ****
******* **** ****
******** *** ***
********* ***
******* ******
************* **
***********
*** **** ***
*** **************** ***
*** **************** ***
*** ***
*** **************** ***
*** ***
****************************
****************************
Noel ağaçları
*
*** *
* ***** ***
*** ******* * *****
***** ********* *** *
* *********** *****
* ************* *******
* *** *************** * *
*** ***** ***************** ***
***** ******* ******************* *****
******* * ********************* *******
********* * *********
* *