Thách thức: Tạo đầu ra sau bằng cách sử dụng càng ít ký tự càng tốt:
_ _ _ _ _ _ _
| | | | ___| | | ___ __ _____ _ __| | __| | |
| |_| |/ _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | |
| _ | __/ | | (_) | \ V V / (_) | | | | (_| |_|
|_| |_|\___|_|_|\___( ) \_/\_/ \___/|_| |_|\__,_(_)
|/
Các quy tắc và hạn chế:
Bạn không được sử dụng FIGLet hoặc bất kỳ công cụ tương tự nào. (Nếu không,
figlet Hello, world!
sẽ là một giải pháp tầm thường và khá nhiều vô địch.)Chương trình của bạn phải bao gồm toàn bộ các ký tự ASCII có thể in được - cụ thể là các điểm mã 9 (TAB), 10 (LF) và 32 - 126. (Nếu ngôn ngữ / HĐH của bạn yêu cầu ngắt dòng CRLF, bạn có thể sử dụng các ký tự thay vì các dòng chữ đơn giản.) Có , điều này đáng tiếc không đủ tiêu chuẩn cho bất kỳ ngôn ngữ nào yêu cầu các ký tự không phải ASCII (hoặc dữ liệu phi văn bản) như là một phần của cú pháp của nó.
Đầu ra phải trông giống hệt như ví dụ trên. Tuy nhiên, bạn có thể bao gồm thêm khoảng trắng xung quanh đầu ra nếu bạn muốn. Bạn có thể giả định khoảng cách tab 8 ký tự (hoặc cài đặt mặc định gốc của nền tảng bạn đã chọn, nếu nó có một khoảng nhất quán).
Thi thiên Để đặt mệnh giá, tôi đã đưa ra giải pháp Perl 199 char. Tuy nhiên, tôi sẽ không đăng nó trong trường hợp ai đó nghĩ ra nó một cách độc lập. (Ngoài ra, đó là loại vui nhộn.) Tất nhiên, điều này không khuyến khích bạn đăng giải pháp của riêng bạn, ngay cả khi nó dài hơn.
Cập nhật: Bây giờ han đã đánh bại nó bằng một char, đây là giải pháp Perl 199-char tuyệt vời của tôi:
use Compress'Zlib;say uncompress unpack u,'M>-I]BT$*`S$,`^]YQ=R:0,&_Z<DP?8@?WVQJ]E2J"%E$$@)R(/(/MCJ*\U!OM`Z#=5`4Y>6M=L\L%DMP&DB0V.4GQL&OOGB$4:%`4TT4!R8O-Z(^BTZWNV?>F86K:9+""-35*-LNC:T^D:_$#%^`";"DD0'
Nó rất giống với giải pháp của DC (và tất cả các giải pháp dựa trên zlib / gzip khác trong các ngôn ngữ khác nhau), ngoại trừ việc tôi đã sử dụng uuencoding thay vì base64 cho văn bản nén và một vài thủ thuật đánh gôn nhỏ khác.
Cập nhật 2 : Tôi nghĩ đã đến lúc chính thức chấp nhận một người chiến thắng. Vị trí đầu tiên thuộc về mã PHP của konsolenfreddy , vì, tuy nhiên, bạn đếm các ký tự, đây là mã ngắn nhất được gửi cho đến nay. Trong thực tế, kết hợp nó với luồng DEFLATE được tối ưu hóa từ mã Perl 199 char của tôi mang lại giải pháp 176 char thậm chí còn ngắn hơn:
<?=gzinflate(base64_decode("fYtBCgMxDAPvecXcmkDBv+nJMH2IH99savZUqghZRBICciDyD7Y6ivNQbwOg3VQFOXlrXbPLBZLcBpIkNjlJ8bBr754hFGhQFNNFAcmLzeiPotOt7tn3plq2mSwgjU1SjbLo2tPpGvxAxfgA"));
Tuy nhiên, tôi nghĩ rằng han xứng đáng được đề cập danh dự đặc biệt vì đã đến rất gần mà không sử dụng bất kỳ công cụ giải nén được viết sẵn nào. Chúc mừng cả hai bạn, và chúc mừng năm mới mọi người!