以下は、4方向の交差点のASCIIアートです。
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
(水平道路の高さが3行で、垂直道路の幅が5列であることに注意してください。これは、四角形のフォントのために、審美的な理由からです。)
あなたの課題は、このASCIIアートを作成することです。ただし、ご存知のとおり、すべての交差点にすべての方向に走行する道路があるわけではありません。この特定の交差点は行くがNESW
、いくつかの交差点は行くかもしれない、例えばNW
:
| | |
| |
| | |
| |
| | |
-----+-----+
| |
- - -| |
| |
-----+-----+
またはそれは行くかもしれませんSWE
:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
またはE
、ただ一方向に進むこともあります(ただし、これを交差点と呼ぶことはほとんどできませんが、過度につまらないようにしないでください)。
+-----+-----
| |
| |- - -
| |
+-----+-----
あなたは簡単に生成できるプログラムや関数記述する必要がある任意のこれらの組み合わせのを。より具体的にはNESW
、入力としてからなる一連の方向を取り、それらの方向を指す道路との交差点のこのASCIIアートを出力または返すプログラムまたは関数を作成することが課題です。これらの方向は、任意の順序で表示されることがありますが、入力はしません以外の任意の文字を含むN
、E
、S
、またはW
。必要に応じて、入力を小文字にすることもできますが、回答でこれを指定する必要があります。また、すべての入力に少なくとも1つの方向が含まれると想定することもできます。
最後の例では、西に向かう道路がないため、各行に先行スペースがありました。西に向かう道路がない場合、これらの先行スペースはオプションです。この:
+-----+-----
| |
| |- - -
| |
+-----+-----
許容可能な出力にもなります。場合同様、N
またはS
なくなって、そこの場所で空行はオプションです。1つの末尾の改行が許可され、出力が視覚的に同じである限り、末尾のスペースが許可されます。
STDIN / STDOUT、コマンドライン引数、ファイル、関数の引数/戻り値など、合理的な形式で入力および出力を取得できます。
いつものように、これはcode-golfなので、使用する言語に関係なく最短の回答を得るようにしてください!
サンプルIO:
NESW:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
NS:
| | |
| |
| | |
| |
| | |
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
S:
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
EW:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
SE:
+-----+-----
| |
| |- - -
| |
+-----+-----
| | |
| |
| | |
| |
| | |
E
れますか(たとえば、がない場合)?何があるかどう先頭と末尾されている空白行は許可されませんN
かS
?