Le but de ce défi est de produire une version ASCII de la couverture de ce superbe album du groupe de rock Pink Floyd.
Les jonctions de briques sont composées de caractères _
et |
. Les briques ont des caractères de largeur 7 et de hauteur 2, à l'exclusion des jonctions. Donc, l'unité de base, y compris les jonctions, est:
_________
| |
| |
_________
Chaque rangée de briques est décalée d'une demi-largeur de brique (4 caractères) par rapport à la rangée précédente:
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
Le mur est paramétré comme suit. Tous les paramètres sont mesurés en caractères, jonctions comprises:
- Décalage horizontal de la première rangée,
F
. C'est la distance entre la marge gauche et la première jonction verticale de la rangée la plus haute. (Rappelez-vous également le décalage relatif de demi-brique entre les lignes). Ses valeurs possibles sont0
,1
, ...,7
. - Totale largeur ,
W
. Cela inclut les jonctions. Sa valeur est un entier positif. - Totale hauteur ,
H
. Cela inclut les jonctions. Sa valeur est un entier positif.
Le sommet du mur coïncide toujours avec le haut d'une rangée. Le fond peut être déchiqueté (si la hauteur totale n’est pas un multiple de 3
). Par exemple, voici la sortie pour 6
, 44
, 11
:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
et une explication visuelle des paramètres:
F=6
......
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
H=11 . | | | | | |
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
............................................
W=44
Règles supplémentaires
Vous pouvez fournir un programme ou une fonction.
Le format d'entrée est flexible comme d'habitude. La sortie peut être via STDOUT ou un argument renvoyé par une fonction. Dans ce cas, il peut s'agir d'une chaîne avec des nouvelles lignes ou d'un tableau de chaînes.
Les espaces de fin ou les nouvelles lignes sont autorisés.
Le code le plus court en octets gagne.
Cas de test
Les entrées sont dans l'ordre indiqué ci-dessus, à savoir: décalage horizontal de la première ligne, largeur totale, hauteur totale.
6, 44, 11:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
2, 20, 10:
____________________
| | |
| | |
____________________
| |
| |
____________________
| | |
| | |
____________________
1, 1, 1:
_
1, 2, 3:
__
|
|
3, 80, 21:
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |