Tarefa
Sua tarefa é escrever um programa que produza caixas ASCII nos locais especificados pela entrada.
Entrada
Você receberá uma lista de números. O formato aqui é um pouco flexível, em que você pode usar qualquer deliminator você quer (por exemplo 1,2,3,4
, 1 2 3 4
, [1,2,3,4]
). A lista está nos grupos de 4 e especifica o xywh
de cada caixa. A largura e a altura de cada caixa serão pelo menos 2. x
e width
serão da esquerda para a direita. y
e height
são de cima para baixo.
Resultado
A renderização pode ser vista da direita para a esquerda, com a caixa à direita desenhada primeiro e todas as caixas depois disso. Espaços à direita são permitidos, bem como uma nova linha à direita.
Como lidar com caixas sobrepostas
A caixa à esquerda da entrada é a caixa superior e nada se sobrepõe. Cada caixa após ela é renderizada apenas no espaço que já não está contido em uma caixa e não substitui a borda de uma caixa já renderizada.
Estilo
O estilo das caixas é bastante padrão, sendo +
usado para cantos, -
usado para linhas horizontais e |
usado para linhas verticais.
Exemplos:
( >>>
indica entrada)
>>>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
, em vez de0 4 13 5
?