Hier ist eine ASCII-Kunst einer 4-Wege-Kreuzung:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
(Beachten Sie, dass die horizontalen Straßen 3 Zeilen hoch sind, während die vertikalen Straßen 5 Spalten breit sind. Dies ist aus ästhetischen Gründen aufgrund der rechteckigen Schrift erforderlich.)
Ihre Herausforderung besteht darin, diese ASCII-Grafik zu erstellen. Wie Sie sicherlich alle wissen, hat nicht jede Kreuzung eine Straße, die in alle Richtungen abfährt. Diese bestimmte Kreuzung verläuft NESW
, aber einige Kreuzungen verlaufen möglicherweise wie folgt NW
:
| | |
| |
| | |
| |
| | |
-----+-----+
| |
- - -| |
| |
-----+-----+
Oder es könnte gehen SWE
:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
Oder es geht sogar E
nur in eine Richtung (obwohl Sie dies kaum als Kreuzung bezeichnen können , aber versuchen Sie zu vermeiden, übermäßig umständlich zu sein):
+-----+-----
| |
| |- - -
| |
+-----+-----
Sie müssen ein Programm oder eine Funktion schreiben, mit denen Sie leicht eine dieser Kombinationen erstellen können. Insbesondere besteht Ihre Herausforderung darin, ein Programm oder eine Funktion zu schreiben, die eine Zeichenfolge von Richtungen NESW
als Eingabe verwendet und diese ASCII-Grafik einer Kreuzung mit in diese Richtungen weisenden Straßen ausgibt oder zurückgibt. Diese Richtungen können in beliebiger Reihenfolge erscheinen, aber die Eingabe nicht enthält alle Zeichen außer für N
, E
, S
, oder W
. Wenn Sie möchten, können Sie stattdessen Eingaben in Kleinbuchstaben anfordern, dies müssen Sie jedoch in Ihrer Antwort angeben. Sie können auch davon ausgehen, dass alle Eingänge mindestens eine Richtung enthalten.
Das letzte Beispiel enthielt führende Leerzeichen in jeder Zeile, da keine Straße nach Westen führt. Wenn Sie keine Straße nach Westen haben, sind diese Leerzeichen optional. Dies:
+-----+-----
| |
| |- - -
| |
+-----+-----
Wäre auch eine akzeptable Ausgabe. In ähnlicher Weise sind leere Zeilen an dieser Stelle optional , wenn N
oder S
weg ist. Eine abschließende neue Zeile ist zulässig, und abschließende Leerzeichen sind zulässig, solange die Ausgabe visuell identisch ist.
Sie können Eingaben und Ausgaben in jedem vernünftigen Format vornehmen, z. B. STDIN / STDOUT, Befehlszeilenargumente, Dateien, Funktionsargumente / Rückgabewerte usw.
Wie üblich ist dies Codegolf . Versuchen Sie daher, die kürzestmögliche Antwort in der Sprache zu erhalten, die Sie gerade verwenden.
Beispiel IO:
NESW:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
NS:
| | |
| |
| | |
| |
| | |
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
S:
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
EW:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
SE:
+-----+-----
| |
| |- - -
| |
+-----+-----
| | |
| |
| | |
| |
| | |
E
gibt)? Sind führende und nachfolgende Leerzeilen zulässig, wenn keineN
oderS
?