Ziel dieser Herausforderung ist es, eine ASCII-Version des Covers dieses großartigen Albums der Rockband Pink Floyd zu produzieren.
Die Ziegelknoten bestehen aus Zeichen _
und |
. Steine haben eine Breite von 7 und eine Höhe von 2 Zeichen, ausgenommen Kreuzungen. Die Basiseinheit, einschließlich der Verbindungsstellen, ist also:
_________
| |
| |
_________
Jede Ziegelreihe ist gegenüber der vorherigen um eine halbe Ziegelbreite (4 Zeichen) versetzt:
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
________________________________________
| | | | |
| | | | |
Die Wand wird wie folgt parametriert . Alle Parameter werden in Zeichen einschließlich Übergängen gemessen:
- Horizontal - Offset der ersten Zeile
F
. Dies ist der Abstand zwischen dem linken Rand und der ersten vertikalen Verbindung der obersten Reihe. (Denken Sie auch an den relativen Versatz von Ziegeln zwischen den Zeilen). Seine Werte sind möglich0
,1
...,7
. - Gesamtbreite ,
W
. Dies schließt Knotenpunkte ein. Sein Wert ist eine positive ganze Zahl. - Gesamthöhe ,
H
. Dies schließt Knotenpunkte ein. Sein Wert ist eine positive ganze Zahl.
Die Oberseite der Wand fällt immer mit der Oberseite einer Reihe zusammen. Der Boden kann zerlumpt sein (wenn die Gesamthöhe nicht ein Vielfaches von ist 3
). Zum Beispiel ist hier der Ausgang für 6
, 44
, 11
:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
und eine visuelle Erklärung der Parameter:
F=6
......
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
H=11 . | | | | | |
. ____________________________________________
. | | | | |
. | | | | |
. ____________________________________________
. | | | | | |
............................................
W=44
Zusätzliche Regeln
Sie können ein Programm oder eine Funktion bereitstellen.
Das Eingabeformat ist wie gewohnt flexibel. Die Ausgabe kann über STDOUT oder ein von einer Funktion zurückgegebenes Argument erfolgen. In diesem Fall kann es sich um eine Zeichenfolge mit Zeilenumbrüchen oder ein Array von Zeichenfolgen handeln.
Leerzeichen oder Zeilenumbrüche sind erlaubt.
Kürzester Code in Bytes gewinnt.
Testfälle
Die Eingaben erfolgen in der oben angegebenen Reihenfolge, dh horizontaler Versatz der ersten Reihe, Gesamtbreite, Gesamthöhe.
6, 44, 11:
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
| | | | | |
____________________________________________
| | | | |
| | | | |
____________________________________________
| | | | | |
2, 20, 10:
____________________
| | |
| | |
____________________
| |
| |
____________________
| | |
| | |
____________________
1, 1, 1:
_
1, 2, 3:
__
|
|
3, 80, 21:
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |
________________________________________________________________________________
| | | | | | | | | |
| | | | | | | | | |