Celem tego wyzwania jest wyprodukowanie wersji ASCII okładki tego wspaniałego albumu zespołu rockowego Pink Floyd.
Ceglane skrzyżowania składają się z postaci _
i |
. Cegły mają szerokość 7 i wysokość 2 znaki, z wyłączeniem skrzyżowań. Zatem podstawową jednostką, w tym skrzyżowaniami, jest:
_________
| |
| |
_________
Każdy rząd cegieł jest przesunięty o połowę szerokości cegły (4 znaki) w stosunku do poprzedniego rzędu:
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
Ściana jest parametryzowana w następujący sposób. Wszystkie parametry są mierzone w znakach, w tym skrzyżowaniach:
- Poziome przesunięcie pierwszego rzędu
F
. Jest to odległość między lewym marginesem a pierwszym pionowym skrzyżowaniem najwyższego rzędu. (Pamiętaj również o względnym przesunięciu między cegłami między rzędami). Jego możliwych wartości0
,1
, ...,7
. - Całkowita szerokość ,
W
. Obejmuje to skrzyżowania. Jego wartość jest dodatnią liczbą całkowitą. - Łączna wysokość ,
H
. Obejmuje to skrzyżowania. Jego wartość jest dodatnią liczbą całkowitą.
Szczyt ściany zawsze pokrywa się z górą rzędu. Dno może być poszarpane (jeśli całkowita wysokość nie jest wielokrotnością 3
). Na przykład, tutaj jest wyjście 6
, 44
, 11
:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
oraz wizualne objaśnienie parametrów:
F=6
......
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
H=11 . | | | | | |
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
............................................
W=44
Dodatkowe zasady
Możesz podać program lub funkcję.
Format wejściowy jest elastyczny jak zwykle. Dane wyjściowe mogą być przekazywane przez STDOUT lub argument zwracany przez funkcję. W tym przypadku może to być ciąg znaków z nowymi liniami lub tablica ciągów.
Końcowe spacje lub znaki nowej linii są dozwolone.
Najkrótszy kod w bajtach wygrywa.
Przypadki testowe
Dane wejściowe są w podanej wyżej kolejności, to znaczy: przesunięcie w poziomie pierwszego rzędu, całkowita szerokość, całkowita wysokość.
6, 44, 11:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
2, 20, 10:
____________________
| | |
| | |
____________________
| |
| |
____________________
| | |
| | |
____________________
1, 1, 1:
_
1, 2, 3:
__
|
|
3, 80, 21:
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |