Chúng ta hãy tạo một đồng hồ và lịch nghệ thuật ASCII cho chúng ta biết tháng hiện tại, ngày trong tháng, ngày trong tuần, giờ, phút và cho dù đó là đêm hay ngày (nhưng không phải là năm hay giây).
Tại bất kỳ thời điểm cụ thể nào, lịch sẽ trông giống như thế này: (nó trông đẹp hơn với khoảng cách dòng ít hơn)
________________________________________________________________
|\ ____________________________________________________________ /|
| | ___ | |
| | _( ) | |
| | (___)__) -.- | |
| | | |
| | | |
| | -.- | |
| | -.- | |
| | ___ | |
| | _( ) | |
| | (___)__) | |
| | | |
| | ___ | |
| | _( ) | |
| | _ (___)__) | |
| | /|\ | |
| | / | \ | |
| | /__|__\ | |
| |____|____ | |
| |\_______/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-~~-~~~~~| |
| |____________________________________________________________| |
|/______________________________________________________________\|
Nó luôn là một "khung hình" 66 x 23 ký tự mà đường viền không bao giờ thay đổi.
Hình ảnh trong khung cho chúng ta biết thời gian và ngày:
- Trong ngày (6:00 sáng - 5:59 chiều) tháng được xác định bởi số lượng chim (
-.-
) trên bầu trời. Tháng 1 = 1 con chim, tháng 2 = 2 con chim, v.v. - Trong đêm (6:00 tối - 5:59 sáng) những con chim được thay thế bằng số sao nhiều gấp 3 lần (
*
). Tháng 1 = 3 sao, tháng 2 = 6 sao, v.v ... Chim và sao không bao giờ ở trên bầu trời cùng một lúc. - Ngày trong tháng được xác định bởi số lượng ký tự giữa hai dấu gạch ngang (
-
) trên mặt nước. ví dụ~~-~~~~-~~
có nghĩa là ngày thứ tư trong tháng Tùy thuộc vào phút, thuyền có thể cần phải ở giữa các dấu gạch ngang (dấu gạch ngang không vòng quanh). - Ngày trong tuần được xác định bởi số lượng mây trên bầu trời (tất cả các đám mây trông giống nhau). Chủ nhật = 0 đám mây , Thứ hai = 1 đám mây, ..., Thứ bảy = 6 đám mây.
- Giờ được xác định bởi mực nước (và thuyền). Ở mức thấp nhất (như trên) là 1 giờ, trong 2 giờ, nó cao hơn một ký tự, và cứ như vậy đến 12 giờ, sau đó quay lại 1 giờ. (Đó là đồng hồ 12 không phải 24 giờ.)
- Phút được xác định bởi vị trí nằm ngang của thuyền. Vào đầu giờ thuyền chạm vào cạnh trái của khung (như trên). Ở mỗi phút tiếp theo, thuyền di chuyển đúng bởi một nhân vật. Trong phút 51 đến 59, nó lặp từ phía bên phải của khung quay lại bên trái.
Vì vậy, với ví dụ ở trên có 3 con chim, 3 đám mây, 2 ký tự giữa các dấu gạch ngang, nước ở mức thấp nhất và con thuyền ở phía xa bên trái, chúng ta có thể nói rằng ngày là thứ Tư ngày 2 tháng 3 và thời gian là 1: 00:00
Đây là một ví dụ khác từ Chủ nhật ngày 25 tháng 4, lúc 3:58 sáng:
________________________________________________________________
|\ ____________________________________________________________ /|
| | | |
| | * * | |
| | * * * | |
| | * | |
| | | |
| | * | |
| | * * | |
| | | |
| | * | |
| | | |
| | * | |
| | _ | |
| | /|\ * | |
| |/ | \ | |
| |__|__\ /| |
| |__|____ __| |
| |______/~~~~~~~~~~~~~~~~~~~-~~~~~~~~~~~~~~~~~~~~~~~~~-~~~~~\_| |
| | | |
| | | |
| |____________________________________________________________| |
|/______________________________________________________________\|
Mục tiêu
Mục tiêu của bạn là viết chương trình ngắn nhất có thể để đưa ra các "lịch" nghệ thuật ASCII này vào thiết bị xuất chuẩn sử dụng thời gian khi chương trình được chạy.
Mỗi lần chạy chương trình sẽ xuất ra một cảnh thời gian. Cập nhật không nên tự động (hoặc hoạt hình).
Các đám mây, ngôi sao và chim, nên được đặt ngẫu nhiên trên bầu trời (vì vậy mỗi lần chạy, ngay cả những lần cùng một lúc có khả năng khác nhau). Họ không bao giờ nên chồng lên nhau hoặc thuyền. (Ngoài ra, các dấu gạch ngang nước không được đè lên thân thuyền.)
Lưu ý rằng không có gì tôi đã mô tả xuất hiện dưới nước. Đây là để bạn làm. Trong một giờ định trước mỗi tuần (sự lựa chọn của bạn), một điều thú vị nên được rút ra dưới nước. Nó có thể là một con quái vật biển hoặc tàu chìm hoặc bất cứ điều gì, tùy thuộc vào bạn. Trong giờ đó, bạn thậm chí có thể thay đổi thiết kế của phần còn lại của cảnh (nằm trong giới hạn khung).
Chấm điểm
Đây là một kết hợp thi đấu phổ biến mã-golf.
Điểm của bạn là (bytes in program) - 4 * (upvotes - downvotes)
. Điểm thấp nhất sẽ thắng.
Sử dụng http://otherseff.in/byte-corer làm bộ đếm byte nếu bạn sử dụng các ký tự không phải ASCII.
Ghi chú và cập nhật
Bạn có thể sử dụng phao thay vì dấu gạch ngang, vì, hãy đối mặt với nó, chúng phù hợp hơn nhiều:
| | ~~(_)~~~(_)~~ (3rd of the month)
Dấu gạch ngang (hoặc phao) không phải là ngẫu nhiên nhưng sẽ rất tuyệt nếu có.
- "Giờ đặc biệt" của bạn sẽ kéo dài 60 phút từ đầu giờ đến 1 phút trước giờ tiếp theo.
- Trong giờ đặc biệt, những thứ bạn vẽ dưới nước có thể di chuyển và có thể làm thay đổi bề mặt và bầu trời khi nó có ý nghĩa (ví dụ: quái vật biển ăn thuyền, lỗ đen hình thành dưới đáy biển, v.v.)