Viết chương trình ngắn nhất để biến bất kỳ tác phẩm nghệ thuật ASCII nào thành cảnh tuyết hoạt hình bắt đầu hình thành từ tuyết rơi ( ví dụ JavaScript không chơi gôn được cập nhật lần cuối 2011-12-19).
Đặc tả đầu vào : Chương trình của bạn phải chấp nhận kết hợp tùy ý các khoảng trắng, dấu sao và dòng mới. Đầu vào sẽ chứa tối đa 23 dòng và 80 ký tự trên mỗi dòng. Sẽ không có dòng nào trống, nhưng dòng có thể chỉ bao gồm khoảng trắng. Một dòng mới duy nhất sẽ được bao gồm và phải được bỏ qua.
Đầu ra : Xuất các ký tự ASCII (dấu cách, dấu sao) và mã điều khiển (trả về vận chuyển, nguồn cấp dữ liệu, mã thoát ANSI, v.v.) cho bảng điều khiển văn bản hoặc trình giả lập thiết bị đầu cuối của hệ điều hành cho đến khi người dùng tự kết thúc chương trình. Bạn có thể giả sử cửa sổ đầu cuối là 80x24 ký tự nếu hệ điều hành của bạn cho phép cài đặt đó.
Quy tắc :
- Hoạt hình phải mượt mà và nhanh chóng (ưu tiên 15 khung hình / giây).
- Mật độ tuyết phải nằm trong khoảng từ 5% đến 15%.
- Không quá một màn hình tuyết có thể cuộn mỗi giây. (Điều đó có nghĩa là không quá 24 dòng tuyết mới có thể được thêm vào trong bất kỳ khoảng thời gian một giây nào.)
- Tuyết không được hiển thị bất kỳ mô hình rõ ràng nào khi nó đi vào phía trên màn hình; nó phải nhìn ngẫu nhiên
- Chương trình phải lấp đầy tất cả các hàng của màn hình bằng tuyết càng nhanh càng tốt khi nó bắt đầu; Việc lấp đầy các hàng riêng lẻ của màn hình không được rõ ràng đối với người xem.
- Góc dưới bên trái của nghệ thuật ASCII đầu vào phải ở góc dưới bên trái của màn hình (Hình 1 để làm rõ thêm).
- Khu vực bên trong hoặc theo nghệ thuật ASCII không được lấp đầy vĩnh viễn bằng các dấu sao. Tuy nhiên, dấu hoa thị có thể (nhưng không bắt buộc) di chuyển qua khu vực này.
- Tuyết không được tích tụ ở dưới cùng của màn hình hoặc trên đỉnh của tuyết hiện có trừ khi được hiển thị trong đầu vào.
- Các không gian thấp hơn phải được lấp đầy trước các khoảng trên, vì điền vào các không gian theo thứ tự ngược lại làm cho hoạt hình cây Giáng sinh trông rất khác so với đầu ra của mã gốc của tôi. (đã thêm 2011-12-20)
Chúc mừng ngày lễ
Hình 1: các khu vực được gắn nhãn của màn hình 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
Ví dụ đầu vào
Biểu ngữ Golf Code
****** ******* ******** ******** ****** ******* ** ********
** ** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ****** ** **** ** ** ** ******
** ** ** ** ** ** ** ** ** ** ** **
** ** ** ** ** ** ** ** ** ** ** ** **
****** ******* ******** ******** ****** ******* ******** **
Logo chồng chéo
****
****
**** ****
**** ****
**** ****
*** **** ****
******* **** ****
******** *** ***
********* ***
******* ******
************* **
***********
*** **** ***
*** **************** ***
*** **************** ***
*** ***
*** **************** ***
*** ***
****************************
****************************
Cây thông Noel
*
*** *
* ***** ***
*** ******* * *****
***** ********* *** *
* *********** *****
* ************* *******
* *** *************** * *
*** ***** ***************** ***
***** ******* ******************* *****
******* * ********************* *******
********* * *********
* *