注:文字列アートは、SEフォントの奇妙さのためにここで恐ろしく見えるかもしれません:P :(
長方形の角を表す4つのタプルのリストが与えられたら、半透明の長方形をこの順序で重ねて描画します。
この課題では、左上隅の座標が最小で、x軸が右に増加し、y軸が下に増加する必要があります。
4タプル(x0, y0, x1, y1)
またはは、長方形の左上隅と右下隅の座標ペアを(x0, x1, y0, y1)
表し(x, y)
ます(長方形には2つの形式のいずれかを選択できますが、一貫性が必要です)
「半透明の長方形」とはどういう意味ですか?さて、この課題では、スペース文字とほとんどのボックス描画文字を使用します。具体的には、「太字」の文字を含む長方形の描画に使用されるすべてのもの。半透明の長方形が描画されると、最初に占有されているスペース内のすべての細い線が消え、すべての太線が細くなり、次に長方形自体が太線で描かれます。
たとえば、左上に長方形を描き、次に右下に長方形を描くと、次のようになります。
┏━━━━┓
┃ ┃
┃ ┃
┃ ┏━━╇━━┓
┃ ┃ │ ┃
┗━╉──┘ ┃
┃ ┃
┃ ┃
┗━━━━━┛
明確にするために、厳密に長方形内のすべての線の線を明るくします(太字->細い->なし)(たとえば、下向きの線は上端では影響を受けますが、下端では影響を受けません)。
テストケース
各テストケースについて、入力のいくつかの行が与えられ、その後にunicode-artが続きます。
0 0 5 5
5 5 10 10
3 3 7 7
2 2 8 8
┏━━━━┓
┃ ┃
┃ ┏━━╇━━┓
┃ ┃┌─┴─┐┃
┃ ┃│ │┃
┗━╉┤ ├╊━┓
┃│ │┃ ┃
┃└─┬─┘┃ ┃
┗━━╈━━┛ ┃
┃ ┃
┗━━━━┛
14 5 15 9
13 2 15 16
6 4 15 11
┏━┓
┃ ┃
┏━━━━━━╇━┫
┃ │ ┃
┃ │ ┃
┃ │ ┃
┃ │ ┃
┃ │ ┃
┃ │ ┃
┗━━━━━━╈━┫
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┗━┛
6 8 10 11
15 12 16 16
14 10 16 16
9 1 15 15
┏━━━━━┓
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┃ ┃
┏━━╉┐ ┃
┃ ┃│ ┃
┃ ┃│ ┌╊┓
┗━━╉┘ │┃┃
┃ │┠┨
┃ │┃┃
┃ │┃┃
┗━━━━╈┩┃
┗┷┛
ルール
- 入力は、4タプルのリストの任意の妥当な形式にすることができます。入力は、一インデックス又はいずれかの軸に沿ってゼロインデックス付けすることができる(すなわち、左上隅には、のいずれかであることができます
(0, 0)
、(0, 1)
、(1, 0)
、(1, 1)
。 - 出力は、説明されているようにunicode-artでなければなりません。出力には、先頭の改行がない場合があり、最後の行の後に最大で1つの末尾の改行を含めることができます。このチャレンジでは、末尾の空白は無視されます。
コードポイント
大胆で明るい水平および垂直パイプは範囲内にあります[U+2500, U+2503]
。さまざまなコーナーパイプが範囲内にあります[U+250C, U+251C)
。3本腕のパイプは、範囲内にあります[U+251C, U+253C)
。4本腕のパイプは、範囲内にあります[U+253C, U+254C)
。私のプログラムで見つけることができる残りのパイプは実際には使用されません。