Descrizione del compito:
Disegna un cubo in arte ASCII in circa una proiezione di cabinet.
Monospaced fonts
spesso hanno personaggi che sono circa due volte più alti che larghi. Poiché l'input è la lunghezza delle linee verticali (esclusi gli angoli), le linee orizzontali vengono disegnate con il doppio del numero di caratteri in modo che l'immagine risultante sia in realtà un cubo. Le linee sfuggenti sono disegnate a metà della lunghezza, come richiesto da una proiezione di gabinetto.
Gli angoli del cubo sono rappresentati da +
, linee orizzontali da -
, linee verticali da |
e diagonali usate /
.
Riassumendo: lascia che l'input sia n , quindi
- Un bordo orizzontale del cubo viene disegnato con
-
ed è composto da 2 n caratteri. - Un bordo verticale del cubo viene disegnato con
|
ed è composto da n caratteri. - Un bordo diagonale del cubo viene disegnato con
/
ed è composto da n / 2 caratteri. - Vengono disegnati gli angoli del cubo
+
. Gli angoli non vengono conteggiati per la lunghezza di un bordo come descritto sopra (vedere anche gli esempi di seguito).
Ingresso:
L'input, fornito sull'input standard, è un singolo numero pari, positivo n (2 ≤ n ≤ 30) che indica la lunghezza delle linee verticali del cubo. È seguito da un'interruzione a riga singola.
Produzione:
L'output è un cubo sull'output standard che segue le regole precedenti. Lo spazio bianco finale sulle linee viene ignorato.
Esempio di input 1:
2
Uscita campione 1:
+----+
/ /|
+----+ |
| | +
| |/
+----+
Esempio di input 2:
4
Uscita campione 2:
+--------+
/ /|
/ / |
+--------+ |
| | |
| | +
| | /
| |/
+--------+
ETA: ora ho accettato la soluzione più breve. Aggiornerò la risposta accettata quando ne arriva una più breve.
Dal momento che alcune persone hanno chiesto per quanto tempo le voci dei nostri concorrenti erano:
227 - Python
240 - Perl
310 - C
315 - C
326 - VB.NET
459 - C
Oltre alle nostre soluzioni (non classificate con le altre):
140 - Golfscript
172 - Ruby
183 - PowerShell