Lo scopo di questa sfida è quello di produrre una versione ASCII della copertina di questo grande album della rock band Pink Floyd.
Le giunzioni in mattoni sono fatte di personaggi _
e |
. I mattoni hanno una larghezza di 7 e un'altezza di 2 caratteri, esclusi gli incroci. Quindi l'unità di base, comprese le giunzioni, è:
_________
| |
| |
_________
Ogni fila di mattoni è sfalsata di mezza larghezza di mattone (4 caratteri) rispetto alla riga precedente:
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
Il muro è parametrizzato come segue. Tutti i parametri sono misurati in caratteri compresi gli incroci:
- Spostamento orizzontale della prima fila,
F
. Questa è la distanza tra il margine sinistro e la prima giunzione verticale della riga più in alto. (Ricorda anche l'offset relativo del mezzo mattone tra le file). I suoi valori possibili sono0
,1
, ...,7
. - Total larghezza ,
W
. Questo include giunzioni. Il suo valore è un numero intero positivo. - Totale altezza ,
H
. Questo include giunzioni. Il suo valore è un numero intero positivo.
La cima del muro coincide sempre con la cima di una fila. Il fondo può essere sfilacciato (se l'altezza totale non è un multiplo di 3
). Ad esempio, ecco l'output per 6
, 44
, 11
:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
e una spiegazione visiva dei parametri:
F=6
......
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
H=11 . | | | | | |
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
............................................
W=44
Regole aggiuntive
È possibile fornire un programma o una funzione.
Il formato di input è flessibile come al solito. L'output può essere tramite STDOUT o un argomento restituito da una funzione. In questo caso può essere una stringa con newline o una matrice di stringhe.
Sono consentiti spazi finali o newline.
Vince il codice più breve in byte.
Casi test
Gli input sono nell'ordine sopra indicato, ovvero: offset orizzontale della prima riga, larghezza totale, altezza totale.
6, 44, 11:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
2, 20, 10:
____________________
| | |
| | |
____________________
| |
| |
____________________
| | |
| | |
____________________
1, 1, 1:
_
1, 2, 3:
__
|
|
3, 80, 21:
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |