For this challenge, an ASCII art quilt will be a block of text 24 characters wide and 18 lines tall, containing the characters =-<>/\
in a quilt-like pattern that is horizontally and vertically symmetrical.
Example quilt:
========================
------------------------
//\\//\\\//\/\\///\\//\\
<<><<>>>>><<>><<<<<>><>>
/\\/\\\\/\/\/\/\////\//\
------------------------
/\/////\\///\\\//\\\\\/\
\///\/\/\\\\////\/\/\\\/
\///\/\/\\\\////\/\/\\\/
/\\\/\/\////\\\\/\/\///\
/\\\/\/\////\\\\/\/\///\
\/\\\\\//\\\///\\/////\/
------------------------
\//\////\/\/\/\/\\\\/\\/
<<><<>>>>><<>><<<<<>><>>
\\//\\///\\/\//\\\//\\//
------------------------
========================
All quilts have the same form:
- They are always 24 by 18.
- The top line (line 1) and bottom line (line 18) are
=
all the way across. - Lines 2, 6, 13 and 17 are
-
all the way across. - Lines 4 and 15 are the same random horizontally symmetric pattern of
<
and>
. - All other lines (3, 5, 7, 8, 9, 10, 11, 12, 14, 16) are filled with
/
and\
in a completely random way such that the entire quilt remains horizontally and vertically symmetric.
Notice that when folding the quilt exactly in half, either vertically or horizontally, the shapes of the characters exactly match up. Don't get this confused with the characters themselves matching up. e.g. line 3 and line 16 are not identical, they are vertical mirror images.
Challenge
Write a program or function that will print or return a random ASCII art quilt.
Due to the many hardcoded lines and the symmetry, the only real randomness comes from the first 12 characters on lines 3, 4, 5, 7, 8, 9:
- The first 12 characters on line 4 should be able to be any length 12 string of the characters
<
and>
. - The first 12 characters on lines 3, 5, 7, 8, 9 should be able to be any length 12 string of the characters
/
and\
(independent of each other). - These random strings are then mirrored accordingly to make the entire quilt.
The shortest answer in bytes wins. Tiebreaker is earlier post.
You may use pseudorandom number generators. (No, you don't need to prove that all 12 char string of <>
or /\
can be generated with you language's PRNG.)
The output may optionally contain a trailing newline, but no trailing spaces or other characters besides what's necessary for the quilt.