Цель этого задания - выпустить ASCII-версию обложки этого великолепного альбома рок-группы Pink Floyd.
Кирпичные узлы сделаны из символов _
и |
. Кирпичи имеют ширину 7 и высоту 2 символа, исключая перекрестки. Таким образом, основной единицей, включая соединения, является:
_________
| |
| |
_________
Каждый ряд кирпичей смещен на половину ширины кирпича (4 символа) относительно предыдущего ряда:
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
Стена параметризована следующим образом. Все параметры измеряются в символах, включая соединения:
- Горизонтальное смещение первого ряда
F
. Это расстояние между левым полем и первым вертикальным соединением самого верхнего ряда. (Помните также относительное смещение между строками в половину кирпича). Его возможные значения0
,1
, ...,7
. - Общая ширина ,
W
. Это включает в себя соединения. Его значение является положительным целым числом. - Общая высота ,
H
. Это включает в себя соединения. Его значение является положительным целым числом.
Вершина стены всегда совпадает с вершиной ряда. Дно может быть неровным (если общая высота не кратна 3
). Например, вот выход для 6
, 44
, 11
:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
и визуальное объяснение параметров:
F=6
......
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
H=11 . | | | | | |
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
............................................
W=44
Дополнительные правила
Вы можете предоставить программу или функцию.
Формат ввода, как обычно, гибкий. Вывод может быть через STDOUT или аргумент, возвращаемый функцией. В этом случае это может быть строка с символами новой строки или массив строк.
Пробелы или переводы строки разрешены.
Самый короткий код в байтах побеждает.
Контрольные примеры
Входные данные расположены в указанном выше порядке: горизонтальное смещение первой строки, общая ширина, общая высота.
6, 44, 11:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
2, 20, 10:
____________________
| | |
| | |
____________________
| |
| |
____________________
| | |
| | |
____________________
1, 1, 1:
_
1, 2, 3:
__
|
|
3, 80, 21:
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |