この課題では、ASCIIアートキルトは、幅24文字、高さ18行のテキストブロックであり、=-<>/\
水平方向と垂直方向に対称なキルトのようなパターンの文字が含まれます。
キルトの例:
========================
------------------------
//\\//\\\//\/\\///\\//\\
<<><<>>>>><<>><<<<<>><>>
/\\/\\\\/\/\/\/\////\//\
------------------------
/\/////\\///\\\//\\\\\/\
\///\/\/\\\\////\/\/\\\/
\///\/\/\\\\////\/\/\\\/
/\\\/\/\////\\\\/\/\///\
/\\\/\/\////\\\\/\/\///\
\/\\\\\//\\\///\\/////\/
------------------------
\//\////\/\/\/\/\\\\/\\/
<<><<>>>>><<>><<<<<>><>>
\\//\\///\\/\//\\\//\\//
------------------------
========================
すべてのキルトの形式は同じです:
- それらは常に24 x 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行目、7行目、8行目、9行目の最初の12文字は、任意の長さの12文字の文字列である必要が
/
あります\
(互いに独立)。 - これらのランダムな文字列は、それに応じてミラーリングされ、キルト全体が作成されます。
バイト単位の最短回答が優先されます。Tiebreakerは以前の投稿です。
擬似乱数ジェネレーターを使用できます。(いいえ、あなたがいることを証明する必要はありません、すべての 12のcharの文字列<>
や/\
、あなたの言語のPRNGで生成することができます。)
出力には、オプションで末尾の改行を含めることができますが、キルトに必要なもの以外に末尾のスペースやその他の文字は含まれません。