Come parte di un progetto di pianificazione urbana, hai ottenuto l'incarico di creare un programma o una funzione che mostrerà lo skyline della città, dato il contributo degli architetti. Il progetto è solo nella fase di avvio, quindi è sufficiente uno schizzo molto approssimativo. L'approccio più semplice è ovviamente quello di disegnare semplicemente lo skyline nell'arte ASCII.
Tutti gli edifici saranno lungo il fiume, quindi sono tutti allineati. Gli architetti forniranno l'altezza di ogni edificio come input e il tuo codice dovrebbe mostrare lo skyline.
L'input degli architetti sarà un numero intero o un mezzo intero. Se il numero è un numero intero, l'edificio avrà un tetto piano, mentre un mezzo numero intero si tradurrà in un tetto inclinato. Uno zero sarà solo terreno piatto. Le pareti di un edificio sono separate da 3 caratteri, mentre uno zero sarà largo un singolo carattere. Gli edifici adiacenti condividono i muri.
Per dettagli e chiarimenti sull'output, dai un'occhiata agli esempi seguenti:
N = 3
___
| |
| |
|___|
N = 3.5
_
/ \
| |
| |
|___|
N = 6
___
| |
| |
| |
| |
| |
|___|
n = 0
_
Esempio di input: 3 3.5 0 2
_
___ / \
| | | ___
| | | | |
|___|___|_|___|
Esempio di input: 0 0 2.5 3 0 4 1
___
_ ___ | |
/ \| | | |
| | | | |___
__|___|___|_|___|___|
Louisville ,0 2 1 3.5 0 4 2 4 2 4 6 1 6 0 5 1
___ ___
| | | | ___
_ ___ ___ ___| | | | | |
/ \ | | | | | | | | | | |
___ | | | |___| |___| | | | | | |
| |___| | | | | | | | |___| | | |___
_|___|___|___|_|___|___|___|___|___|___|___|___|_|___|___|
I caratteri ASCII utilizzati sono: newline, spazio e /\_|(punti di codice 10, 32, 47, 92, 95, 124).
Regole:
- È facoltativo creare un programma che accetta solo numeri interi come input, moltiplicando tutti i numeri per due. Quindi, invece di prendere
3 3.5 2, il tuo programma potrebbe richiedere6 7 4. Se viene scelto il secondo formato di input, un input di 6 dovrebbe tradursi in un edificio a 3 piani, 7 dovrebbe essere un edificio a 3 piani con tetti inclinati, ecc. - L'output dovrebbe essere esattamente come descritto sopra, ma gli spazi finali e le nuove righe sono OK.
- Il formato esatto dell'input è facoltativo. Qualunque sia il migliore nella tua lingua.
- Il risultato deve essere visualizzato sullo schermo, in modo che gli architetti possano vederlo.
- Si può presumere che ci sarà almeno un numero intero dato e che verrà fornito solo un input valido.
Questo è codegolf, quindi vince il codice più breve in byte.