задача
Ваша задача - написать программу, которая будет выводить блоки ASCII в местах, указанных входными данными.
вход
Вам будет предоставлен список номеров. Формат здесь немного гибкий, в том , что вы можете использовать любой deliminator вы хотите (например 1,2,3,4
, 1 2 3 4
, [1,2,3,4]
). Список состоит из 4 групп и определяет xywh
каждый из полей. Ширина и высота каждой ячейки будет не менее 2 x
и width
слева направо. y
и height
сверху вниз.
Выход
Рендеринг можно рассматривать как справа налево, с прямоугольником справа, нарисованным первым, и после каждого прямоугольника над ним. Допускаются завершающие пробелы, а также один завершающий перевод строки.
Как обрабатывать перекрывающиеся коробки
Поле слева от ввода является верхним, и ничто не будет перекрывать его. Каждый блок после него отображается только в пространстве, которое уже не содержится в блоке и не заменит границы уже визуализированного блока.
Стиль
Стиль ящиков довольно стандартный, +
используется для углов, -
для горизонтальных линий и |
для вертикальных линий.
Примеры:
( >>>
обозначает ввод)
>>>0 0 11 4 7 2 8 4 3 5 8 3
+---------+
| |
| |---+
+---------+ |
| |
+---+------+
| |
+------+
>>>0 3 11 4 7 5 8 4 3 8 8 3 4 0 13 5
+-----------+
| |
| |
+---------+ |
| |-----+
| |---+
+---------+ |
| |
+---+------+
| |
+------+
>>>0 0 2 2
++
++
>>>2 2 5 3 1 1 7 5 0 0 9 7
+-------+
|+-----+|
||+---+||
||| |||
||+---+||
|+-----+|
+-------+
>>>0 0 3 3 2 0 3 3
+-+-+
| | |
+-+-+
4 0 13 5
чем0 4 13 5
?