Aqui está uma arte ASCII de uma interseção de quatro vias:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
(Observe como as estradas horizontais têm 3 linhas de altura, enquanto as estradas verticais têm 5 colunas de largura. Isso ocorre por razões estéticas, devido à fonte retangular.)
Seu desafio é produzir essa arte ASCII. No entanto, como tenho certeza de que todos sabem, nem todo cruzamento tem uma estrada que sai em todas as direções. Essa interseção específica ocorre NESW, mas algumas interseções podem ocorrer, por exemplo NW:
| | |
| |
| | |
| |
| | |
-----+-----+
| |
- - -| |
| |
-----+-----+
Ou pode ser SWE:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
Ou pode até seguir E, apenas uma única direção (embora você dificilmente possa chamar isso de interseção , mas tente evitar ser excessivamente pedante):
+-----+-----
| |
| |- - -
| |
+-----+-----
Você precisa escrever um programa ou função que possa gerar facilmente qualquer uma dessas combinações. Mais especificamente, seu desafio é escrever um programa ou função que siga uma sequência de instruções, consistindo em NESW, como entrada e produza ou retorne essa arte ASCII de um cruzamento com estradas apontando nessas direções. Essas direções podem aparecer em qualquer ordem, mas a entrada não irá conter quaisquer caracteres, exceto para N, E, S, ou W. Se desejar, você pode solicitar que as entradas sejam minúsculas, mas você deve especificar isso na sua resposta. Você também pode assumir que todas as entradas conterão pelo menos uma direção.
O último exemplo tinha espaços à esquerda em cada linha, porque não há estrada indo para o oeste. Se você não tem uma estrada que vai para o oeste, esses espaços à esquerda são opcionais. Este:
+-----+-----
| |
| |- - -
| |
+-----+-----
Também seria uma saída aceitável. Da mesma forma, se Nou Sse foi, linhas vazias no local são opcionais. Uma nova linha final é permitida e os espaços finais são permitidos desde que a saída seja visualmente a mesma.
Você pode receber entrada e saída em qualquer formato razoável, como STDIN / STDOUT, argumentos de linha de comando, arquivos, argumentos de função / valores de retorno, etc.
Como de costume, isso é código-golfe , então tente obter a resposta mais curta possível em qualquer idioma que você usar!
IO de amostra:
NESW:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
NS:
| | |
| |
| | |
| |
| | |
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
S:
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
EW:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
SE:
+-----+-----
| |
| |- - -
| |
+-----+-----
| | |
| |
| | |
| |
| | |

E, por exemplo)? As linhas em branco à esquerda e à direita são permitidas se não houverNouS?