六角形のテッセレーション、または平面のタイルは3色です-つまり、赤、青、緑などの3色のみを使用すると、色を共有する境界線を共有する2つの六角形がなくても、すべての六角形を着色できます。そのようなパターンを示す部分的な例。
ASCIIでの部分的な六角形のタイル(STDIN、ファイルからの読み取りなど)が与えられた場合、この色に合うように文字の色(ANSIコード、画像操作など)を変更します。ねじれは六角形の中央(*
下の)は3色であり、その間の線は、対応する2つのヘックスの*
色の混合である必要があります。線が外側の境界線にある場合、対応すると一致する必要があり*
ます。
たとえば、
/ \ / \ / \ / \
| * | * | * | * |
\ / \ / \ / \ /
| * | * | * |
\ / \ / \ /
左上のヘックス*
を赤に、その隣の2つを青と緑(時計回り)に色付けするとします。次に、|
線はマゼンタで、/
線は黄色である必要があります。色付けを続けると、最終的には次のようなものになります(わかりやすくするために拡大します)。
または、の入力に対して
/ \
| * |
/ \ /
| * |
/ \ /
| * |
\ /
次のように色を付けることができます(わかりやすくするために拡大しています)。
いくつかの追加のテストケース(コードでこれらを処理できる必要があります):
/ \ / \
| * | * |
\ / \ /
| * |
/ \ / \
| * | * |
\ / \ /
/ \
| * |
\ / \
| * |
/ \ /
| * |
\ /
/ \
| * |
\ /
ルール
- 入力には少なくとも1つの六角形があることが保証されており、「穴」のある入力はありません。
- 3色ルールを維持している限り、赤で色付けを開始する必要はありません。
- 部分タイリングを2色にすることができる場合、ペナルティなしで行うことができます(2番目の例のように)-部分タイリングを完全なタイリングに外挿する必要は必ずしもありません。
- 六角形の中心
*
は赤、青、または緑で色付けする必要があり、その間の線はシアン、黄色、またはマゼンタでなければなりません。たとえば、マゼンタを使用する*
ことは許可されておらず、赤|
または\
または/
は図面の外側の境界線上になければなりません。以下の色を参照してください。 - コンソールにこれらの正確な色がない場合は、最も近い近似値を使用し、使用する近似値を回答に指定してください。
- 文字が並んでいる限り、末尾の改行を含む先頭または末尾の空白は許容されます。
- コードを簡単にするために、部分的なタイルをスペースパディングで入力して長方形を形成できます。
- 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。
- 出力はコンソールに出力したり、画像として保存したりできます。
- 標準的な抜け穴は禁止されています。
- これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。
色と色の混合物:
利用可能な3つの基本色は次のとおりです(RGB 10進形式のカラーコードを使用)。
- 赤
(255,0,0)
- 緑
(0,255,0)
- 青い
(0,0,255)
組み合わせは次のとおりです。
- 赤と緑が組み合わさって黄色になります
(255,255,0)
- 青と緑を組み合わせてシアンを作ります
(0,255,255)
- 赤と青を組み合わせてマゼンタを作ります
(255,0,255)
*