对于此挑战,ASCII艺术棉被将是一块24个字符宽,18行高的文本块,其中包含=-<>/\
水平和垂直对称的类似棉被样式的字符。
被子示例:
========================
------------------------
//\\//\\\//\/\\///\\//\\
<<><<>>>>><<>><<<<<>><>>
/\\/\\\\/\/\/\/\////\//\
------------------------
/\/////\\///\\\//\\\\\/\
\///\/\/\\\\////\/\/\\\/
\///\/\/\\\\////\/\/\\\/
/\\\/\/\////\\\\/\/\///\
/\\\/\/\////\\\\/\/\///\
\/\\\\\//\\\///\\/////\/
------------------------
\//\////\/\/\/\/\\\\/\\/
<<><<>>>>><<>><<<<<>><>>
\\//\\///\\/\//\\\//\\//
------------------------
========================
所有被子都具有相同的形式:
- 他们总是24乘18。
- 顶线(第1行)和底线(第18行)
=
一直贯穿。 - 第2、6、13和17
-
行一直贯穿。 - 线4和15是相同的随机水平对称的模式
<
和>
。 - 所有其他线条(3、5、7、8、9、10、11、12、14、16)充满
/
且\
完全随机,从而使整个被子保持水平和垂直对称。
请注意,将被子完全垂直或水平对折时,字符的形状完全匹配。不要将此与字符本身匹配起来混淆。例如线3和线16是不相同的,它们是垂直镜像。
挑战
编写程序或函数,以打印或返回随机的ASCII艺术被子。
由于许多硬编码的行和对称性,唯一真正的随机性来自第3、4、5、7、8、9行的前12个字符:
- 在第4行的前12个字符应能是任何字符的长度12的字符串
<
和>
。 - 第3、5、7、8、9行的前12个字符应该可以是任意长度的12个字符串,
/
并且\
(彼此独立)。 - 然后将这些随机的字符串进行相应镜像以制成整个被子。
以字节为单位的最短答案将获胜。Tiebreaker是较早的帖子。
您可以使用伪随机数生成器。(不,你不需要证明所有的12字符的字符串<>
或/\
可以与你的语言的PRNG产生。)
输出可以选择包含尾随换行符,但是除了被子必需外,不包含尾随空格或其他字符。