O objetivo deste desafio é produzir uma versão ASCII da capa deste grande álbum da banda de rock Pink Floyd.
As junções de tijolo são feitas de caracteres _
e |
. Os tijolos têm caracteres de largura 7 e altura 2, excluindo junções. Portanto, a unidade básica, incluindo as junções, é:
_________
| |
| |
_________
Cada linha de tijolos é compensada pela largura de meio tijolo (4 caracteres) em relação à linha anterior:
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
A parede é parametrizada da seguinte forma. Todos os parâmetros são medidos em caracteres, incluindo junções:
- Deslocamento horizontal da primeira linha
F
,. Esta é a distância entre a margem esquerda e a primeira junção vertical da linha superior. (Lembre-se também do deslocamento relativo de meio tijolo entre as linhas). Seus possíveis valores são0
,1
, ...,7
. - Total de largura ,
W
. Isso inclui junções. Seu valor é um número inteiro positivo. - Total de altura ,
H
. Isso inclui junções. Seu valor é um número inteiro positivo.
O topo da parede sempre coincide com o topo de uma linha. O fundo pode estar irregular (se a altura total não for um múltiplo de 3
). Por exemplo, aqui está a saída para 6
, 44
, 11
:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
e uma explicação visual dos parâmetros:
F=6
......
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
H=11 . | | | | | |
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
............................................
W=44
Regras adicionais
Você pode fornecer um programa ou uma função.
O formato de entrada é flexível, como de costume. A saída pode ser através de STDOUT ou um argumento retornado por uma função. Nesse caso, pode ser uma string com novas linhas ou uma matriz de strings.
Espaços à direita ou novas linhas são permitidos.
O menor código em bytes vence.
Casos de teste
As entradas estão na ordem dada acima, ou seja: deslocamento horizontal da primeira linha, largura total, altura total.
6, 44, 11:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
2, 20, 10:
____________________
| | |
| | |
____________________
| |
| |
____________________
| | |
| | |
____________________
1, 1, 1:
_
1, 2, 3:
__
|
|
3, 80, 21:
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |