#DX0041. 多层血条
多层血条
题目描述
在本题中你将帮助比特公司的新游戏《超维攻坚》实现BOSS战的多层血条功能。血条由 行 列个像素构成,外围还有一圈 像素厚的边框,样式请参照样例。
假设BOSS有 条血,则血条由 个图层自底向上叠加而成。底层是 行 列个空格,上面的 层自底向上依次表示第 条血。每条血都有 行,每一列代表 点生命值,因此一共有 条血。每条血都由单一字符构成,自底向上由字符 到 循环表示,例如:第一条血为 ,第二条血为 ,第五条血为 ,第六条血为 。
除此之外,为了加强击打反馈,假设BOSS有 点生命值,玩家当前的攻击对BOSS造成了 点伤害,那么第 至第 点生命值代表的像素将被替换成字符 .
。
给定 ,请绘制出对应的多层血条。
输入格式
第一行包含一个正整数 (),表示测试数据的组数。
每组数据包含一行四个整数 (),分别表示血条的尺寸、BOSS的生命值以及当前受到的伤害。
输出格式
对于每组数据输出 行,每列 个字符,即对应的多层血条。
输入样例
5
2 5 4 2
1 10 49 1
1 10 52 0
1 10 52 5
1 10 52 50
输出样例
+-----+
|AA.. |
|AA.. |
+-----+
+----------+
|EEEEEEEE.D|
+----------+
+----------+
|AAEEEEEEEE|
+----------+
+----------+
|..EEEEE...|
+----------+
+----------+
|..........|
+----------+