上記の画像はヘキサグリフと呼ばれます。ヘキサグリフは、DiffEqクラスでだらだらしている間に作成したクールなパターンです。作成方法は次のとおりです。
- 通常の六角形のような形をした次の一連のポイントを考えてみましょう。内側の六角形は最終的なグリフを含むものであり、外側の6つの点は星を形成し、線の描画を開始する場所です。
- 外側の6つのポイントから、ランダムにペアを選択します。効率を上げるには、選択した2つのポイントの間に少なくとも1つの他のポイントが必要です(そうでない場合、最終的な数値には影響しません)。次に、2つのポイントのそれぞれから、もう一方に向かって光線を投射します。この光線は前の行によってブロックされています。
- 次のいくつかの画像に示すように、9つのエッジがすべて形成されるまで、このプロセスを繰り返します。
- ブロックされている光線の例を次に示します。光線セグメントの端はまだ表示されていますが、中央部分は最初に描いた2つのセグメントによって隠されています。
- これらの2つの光線も「ブロック」されますが、同じ他のラインによってブロックされるため、目に見える違いは生じません。
- 9行すべてが描画されるまで早送りします。これらのスキップされた手順の詳細な説明が必要な場合は、説明できます。
- 最後に、星のポイントを削除します。見栄えを良くするために、太いドットも削除されます。
チャレンジ
あなたが挑戦するのは、ランダムなヘキサグリフの視覚的表現を出力することです。これはコードゴルフであり、バイト数が最も少なくなります。
可能性のあるすべてのヘキサグリフは、何らかの正の確率で表示されるはずです。9つのエッジが描画される順序を変更することにより、異なるヘキサグリフが生成されます。
さらに、プログラムによって出力されるすべての画像は有効なヘキサグリフでなければなりません。特定のパターン(内側の六角形の完全な輪郭など)は、六角形のグリフとして表示されることはないため、プログラムでこれらを出力してはなりません。
出力は、グラフィカルイメージ(画面またはファイルに印刷)である必要があります。
六角形は規則的である必要がありますが、任意の方向に表示できます。
反射/回転は一意とは見なされません。(これにより、要件1が従いやすくなる場合があります)。
'01'
代わりにスペースをインターリーブして使用することです' *'
。
I made up while doodling during my DiffEq class
。すべての偉大な発見が起こるの道...:P