Aquí hay un arte ASCII de una intersección de 4 vías:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
(Observe cómo los caminos horizontales tienen 3 filas de alto, mientras que los caminos verticales tienen 5 columnas de ancho. Esto es por razones estéticas, debido a la fuente rectangular).
Su desafío es producir este arte ASCII. Sin embargo, como estoy seguro de que todos saben, no todas las intersecciones tienen un camino que se desvía en todas las direcciones. Esta intersección particular va NESW
, pero algunas intersecciones pueden ir, por ejemplo NW
:
| | |
| |
| | |
| |
| | |
-----+-----+
| |
- - -| |
| |
-----+-----+
O podría ir SWE
:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
O incluso puede ir E
, solo una dirección (aunque difícilmente puede llamar a esto una intersección , pero trate de evitar ser demasiado pedante):
+-----+-----
| |
| |- - -
| |
+-----+-----
Necesita escribir un programa o función que pueda generar fácilmente cualquiera de estas combinaciones. Más específicamente, su desafío es escribir un programa o función que tome una cadena de direcciones, que consiste en NESW
, como entrada, y emite o devuelve este arte ASCII de una intersección con carreteras que apuntan en esas direcciones. Estas direcciones pueden aparecer en cualquier orden, pero la entrada no contener ningún carácter excepción de N
, E
, S
, o W
. Si lo desea, puede solicitar que las entradas estén en minúsculas, pero debe especificar esto en su respuesta. También puede suponer que todas las entradas contendrán al menos una dirección.
El último ejemplo tenía espacios iniciales en cada línea, porque no hay camino que vaya hacia el oeste. Si no tiene un camino hacia el oeste, estos espacios principales son opcionales. Esta:
+-----+-----
| |
| |- - -
| |
+-----+-----
También sería un resultado aceptable. Del mismo modo, si desaparece N
o no S
, las líneas vacías en ese lugar son opcionales. Se permite una nueva línea final, y los espacios finales se permiten siempre que la salida sea visualmente la misma.
Puede tomar entradas y salidas en cualquier formato razonable, como STDIN / STDOUT, argumentos de línea de comando, archivos, argumentos de función / valores de retorno, etc.
Como de costumbre, este es el código de golf , ¡así que trata de obtener la respuesta más corta posible en el idioma que uses!
Muestra IO:
NESW:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
NS:
| | |
| |
| | |
| |
| | |
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
S:
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
EW:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
SE:
+-----+-----
| |
| |- - -
| |
+-----+-----
| | |
| |
| | |
| |
| | |
E
, por ejemplo)? ¿Se permiten líneas en blanco iniciales y finales si no hayN
oS
?