Ingresso:
- Ottieni una serie di numeri interi (alimentati tramite stdin o prompt).
- Ogni coppia di numeri interi in questa serie rappresenta la LARGHEZZA di un edificio [intervallo valido: 1..10] e HEIGHT [intervallo valido: 0..10]
- Supponiamo che l'input sia ben formato.
Input di esempio (la seconda riga è solo a scopo dimostrativo):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
Output del campione corrispondente:
______
/ ______ / |
| | | __
| | / __ / |
__ | | | | __
/ __ / | | | | / __ / |
| | | __ | | | | | ______
| | / __ / | | | | | / ______ / |
| | | | _ | | | | | |
| _O_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | /
-------------------------------------
- - - - - - - - - - - - -
-------------------------------------
Regole:
Gli edifici
- Un blocco base di base è simile al seguente (1 W, 1H)
__ / __ / | (il cubo di base viene preso in prestito da quello a questa domanda: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
La nostra visione è (ahum) ~ 3D, quindi gli edifici vicini possono nascondere parti di altri. Gli edifici sono "logicamente" resi da sinistra a destra.
Il primo edificio è preceduto da due spazi alla sua sinistra.
Rendi ogni edificio applicando WIDTH e HEIGHT alle dimensioni del cubo di base (dai un'occhiata all'output di esempio fornito!). Per riferimento: numero di caratteri da sinistra a destra 'muro' (per un edificio con W> 1): (W * 5) - (W-1).
Gli edifici con altezza> 0 hanno UNA porta (che è rappresentata dal personaggio
oe si trova a due personaggi dalla parete "sinistra" sulla riga "in basso").
La strada:
- La strada è composta da tre parti che chiameremo "top", "middle" e "bottom".
- La parte "superiore" e la parte "inferiore" sono identiche a parte il fatto che la parte "superiore" è preceduta da due spazi.
- La parte centrale è preceduta da uno spazio e consiste in una ripetizione del seguente schema:
'-'
- La lunghezza deve essere determinata dalla larghezza totale degli edifici combinati: la parte più a destra della strada corrisponde alla posizione della parete "destra" dell'ultimo "edificio".
Vincitori:
Questo è code-golf! Il vincitore è il concorrente qualificato con la soluzione più breve (in base al conteggio del codice sorgente). La fonte deve essere composta esclusivamente da caratteri ASCII stampabili. Divertiti!
Punti bonus immaginari per finestre (casuali), automobili o pedoni.
Sentiti libero di commentare se le specifiche non sono chiare!
'- '(con due spazi)? Modifica : Ah, i due spazi non mostrano: P. È possibile visualizzare più spazi utilizzando ASCII 255 (spazio non interruzione, ALT + 255 sul tastierino numerico) o copiando e incollando dal mio commento qui. Orr ... potresti invece semplicemente dire che è una ripetizione di ' - ':)
but you must not enforce this3)? IMO, ogni ipotesi è disponibile per essere sfruttata se aumenta il tuo punteggio. Quindi posso scrivere un codice che funziona solo se la larghezza totale è inferiore a 80 se riesco a ridurre un numero di caratteri inferiore. Ad esempio, scrivendo l'output su un array di buffer di visualizzazione con una larghezza di 80, quindi si arresterà in modo anomalo su qualsiasi larghezza totale più elevata. Se vuoi supportare una larghezza qualsiasi, non dare il presupposto - non puoi avere entrambi: P