Đối với thử thách này, một chiếc mền nghệ thuật ASCII sẽ là một khối văn bản rộng 24 ký tự và cao 18 dòng, chứa các ký tự =-<>/\
theo mô hình giống như chăn đối xứng theo chiều ngang và chiều dọc.
Ví dụ chăn:
========================
------------------------
//\\//\\\//\/\\///\\//\\
<<><<>>>>><<>><<<<<>><>>
/\\/\\\\/\/\/\/\////\//\
------------------------
/\/////\\///\\\//\\\\\/\
\///\/\/\\\\////\/\/\\\/
\///\/\/\\\\////\/\/\\\/
/\\\/\/\////\\\\/\/\///\
/\\\/\/\////\\\\/\/\///\
\/\\\\\//\\\///\\/////\/
------------------------
\//\////\/\/\/\/\\\\/\\/
<<><<>>>>><<>><<<<<>><>>
\\//\\///\\/\//\\\//\\//
------------------------
========================
Tất cả các mền có cùng một hình thức:
- Họ luôn luôn 24 trong 18.
- Dòng trên cùng (dòng 1) và dòng dưới cùng (dòng 18) là
=
tất cả các cách. - Các dòng 2, 6, 13 và 17 đều
-
đi qua. - Các dòng 4 và 15 là cùng một mẫu đối xứng theo chiều ngang ngẫu nhiên
<
và>
. - Tất cả các dòng khác (3, 5, 7, 8, 9, 10, 11, 12, 14, 16) được lấp đầy
/
và\
theo cách hoàn toàn ngẫu nhiên sao cho toàn bộ chăn vẫn đối xứng theo chiều ngang và chiều dọc .
Lưu ý rằng khi gấp chăn chính xác một nửa, theo chiều dọc hoặc chiều ngang, hình dạng của các ký tự khớp chính xác với nhau. Đừng nhầm lẫn điều này với các nhân vật tự kết hợp. ví dụ dòng 3 và dòng 16 không giống nhau, chúng là hình ảnh phản chiếu dọc.
Thử thách
Viết chương trình hoặc chức năng sẽ in hoặc trả lại chăn nghệ thuật ASCII ngẫu nhiên.
Do có nhiều dòng mã hóa cứng và tính đối xứng, sự ngẫu nhiên thực sự duy nhất đến từ 12 ký tự đầu tiên trên các dòng 3, 4, 5, 7, 8, 9:
- 12 ký tự đầu tiên trên dòng 4 sẽ có thể có độ dài 12 chuỗi ký tự
<
và>
. - 12 ký tự đầu tiên trên các dòng 3, 5, 7, 8, 9 phải có thể là bất kỳ chuỗi dài 12 ký tự nào
/
và\
(độc lập với nhau). - Các chuỗi ngẫu nhiên này sau đó được nhân đôi để tạo ra toàn bộ chăn.
Câu trả lời ngắn nhất trong byte thắng. Tiebreaker là bài trước.
Bạn có thể sử dụng trình tạo số giả ngẫu nhiên. (Không, bạn không cần phải chứng minh rằng tất cả 12 chuỗi char <>
hoặc /\
có thể được tạo bằng PRNG ngôn ngữ của bạn.)
Đầu ra có thể tùy ý chứa một dòng mới, nhưng không có dấu cách hoặc các ký tự khác ngoài những gì cần thiết cho chăn.