Para esse desafio, uma colcha de arte ASCII terá um bloco de texto com 24 caracteres de largura e 18 linhas de altura, contendo os caracteres =-<>/\
em um padrão semelhante a uma colcha simétrica horizontal e verticalmente.
Colcha de exemplo:
========================
------------------------
//\\//\\\//\/\\///\\//\\
<<><<>>>>><<>><<<<<>><>>
/\\/\\\\/\/\/\/\////\//\
------------------------
/\/////\\///\\\//\\\\\/\
\///\/\/\\\\////\/\/\\\/
\///\/\/\\\\////\/\/\\\/
/\\\/\/\////\\\\/\/\///\
/\\\/\/\////\\\\/\/\///\
\/\\\\\//\\\///\\/////\/
------------------------
\//\////\/\/\/\/\\\\/\\/
<<><<>>>>><<>><<<<<>><>>
\\//\\///\\/\//\\\//\\//
------------------------
========================
Todas as colchas têm a mesma forma:
- Eles são sempre 24 por 18.
- A linha superior (linha 1) e a linha inferior (linha 18) estão
=
do outro lado. - As linhas 2, 6, 13 e 17 estão
-
do outro lado. - As linhas 4 e 15 são o mesmo padrão aleatório horizontalmente simétrico de
<
e>
. - Todas as outras linhas (3, 5, 7, 8, 9, 10, 11, 12, 14, 16) são preenchidas
/
e de\
maneira completamente aleatória, de modo que toda a colcha permaneça simétrica horizontal e verticalmente .
Observe que, ao dobrar a colcha exatamente ao meio, vertical ou horizontalmente, as formas dos caracteres são exatamente iguais. Não confunda isso com os próprios personagens. por exemplo, as linhas 3 e 16 não são idênticas, são imagens espelhadas verticais.
Desafio
Escreva um programa ou função que imprima ou retorne uma manta de arte ASCII aleatória.
Devido às muitas linhas codificadas e à simetria, a única aleatoriedade real vem dos 12 primeiros caracteres nas linhas 3, 4, 5, 7, 8, 9:
- Os 12 primeiros caracteres da linha 4 devem ter 12 caracteres de comprimento
<
e>
. - Os primeiros 12 caracteres nas linhas 3, 5, 7, 8, 9 devem poder ter qualquer comprimento de 12 caracteres
/
e\
(independentes um do outro). - Essas seqüências aleatórias são espelhadas de acordo para formar a colcha inteira.
A resposta mais curta em bytes vence. O desempatador é uma publicação anterior.
Você pode usar geradores de números pseudo-aleatórios. (Não, você não precisa provar que todas as 12 caracteres <>
ou /\
podem ser geradas com o PRNG do seu idioma.)
Opcionalmente, a saída pode conter uma nova linha à direita, mas não há espaços à direita ou outros caracteres além do necessário para a colcha.