任务
您的任务是编写一个程序,该程序将在输入指定的位置输出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
+-+-+
| | |
+-+-+
在前两种情况下,从底部开始的第二个矩形的x = 7(与x = 0的矩形一致)
—
Level River St
感谢您的注意,我很少为我的问题写答案,所以所有这些都是手工完成的……
—
J Atkin
@JAtkin对不起,我错过了。
—
科纳·奥布莱恩
很好,我在阅读时也会经常想念东西;)
—
J Atkin
4 0 13 5
不是0 4 13 5
吗?