Ecco un'arte ASCII di un incrocio a 4 vie:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
(Nota come le strade orizzontali sono alte 3 file, mentre le strade verticali sono larghe 5 colonne. Questo per motivi estetici, a causa del carattere rettangolare.)
La tua sfida è quella di produrre quest'arte ASCII. Tuttavia, come sono sicuro che tutti sapete, non ogni incrocio ha una strada che viaggia in ogni singola direzione. Questo particolare incrocio va NESW, ma alcuni incroci potrebbero andare, ad esempio NW:
| | |
| |
| | |
| |
| | |
-----+-----+
| |
- - -| |
| |
-----+-----+
Oppure potrebbe andare SWE:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
Oppure può anche andare E, solo in una direzione (anche se difficilmente puoi chiamarlo incrocio , ma cerca di evitare di essere troppo pedante):
+-----+-----
| |
| |- - -
| |
+-----+-----
È necessario scrivere un programma o una funzione in grado di generare facilmente una di queste combinazioni. Più specificamente, la tua sfida è scrivere un programma o una funzione che prende una serie di direzioni, che consiste NESW, come input, e genera o restituisce questa arte ASCII di un incrocio con strade che puntano in quelle direzioni. Queste indicazioni possono apparire in qualsiasi ordine, ma l'ingresso non contenere caratteri ad eccezione di N, E, S, o W. Se lo desideri, puoi richiedere che gli input siano in minuscolo, ma devi specificarlo nella tua risposta. Si può anche presumere che tutti gli ingressi conterranno almeno una direzione.
L'ultimo esempio aveva spazi iniziali su ogni linea, perché non c'è strada che va verso ovest. Se non hai una strada che va verso ovest, questi spazi iniziali sono opzionali. Questo:
+-----+-----
| |
| |- - -
| |
+-----+-----
Sarebbe anche un risultato accettabile. Allo stesso modo, se No non Sc'è più, le righe vuote al loro posto sono opzionali. È consentita una nuova riga finale e sono consentiti spazi finali purché l'output sia visivamente lo stesso.
È possibile accettare input e output in qualsiasi formato ragionevole, come STDIN / STDOUT, argomenti della riga di comando, file, argomenti di funzioni / valori di ritorno, ecc.
Come al solito, questo è code-golf , quindi cerca di ottenere la risposta più breve possibile in qualunque lingua tu usi!
IO di esempio:
NESW:
| | |
| |
| | |
| |
| | |
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
| | |
| |
| | |
| |
| | |
NS:
| | |
| |
| | |
| |
| | |
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
S:
+-----+
| |
| |
| |
+-----+
| | |
| |
| | |
| |
| | |
EW:
-----+-----+-----
| |
- - -| |- - -
| |
-----+-----+-----
SE:
+-----+-----
| |
| |- - -
| |
+-----+-----
| | |
| |
| | |
| |
| | |

E, ad esempio)? Sono consentite le righe vuote iniziali e finali se non ci sonoNoS?