一、分析过程
1. 编写一个类生成道路网格
1) 根据输入的行和列生成道路网格(数组)
2) 根据get方法获取道路网格数组
2. 通过静态方法获取渲染网格
1)传入道路网格做参数
2)根据道路网格array[i][j].equals("[R]")生成渲染网格
3.输入行和列
1)行和列小于等于0是,重新输入
4.输入字符串
1)判断字符串是否输入的是无效数字
输入除了,;空格 - 和数字以外的数值,字符串无效,重新输入
2)判断字符串是否按指定格式输入
对字符串按“;”分割生成字符串数组
对字符串数组进行正则匹配-?\\d+,-?\\d+ -?\\d+,-?\\d+匹配整数
匹配成功返回true,匹配错误返回false,重新输入
3)判断字符串输入的数值是否有效
分割后返回整数数组
判断整数数组中的整数满足条件(不能为负数和越界)
满足条件返回true,不满足条件返回false,重新输入
4)判断字符串输入的数值是否能够连通
对分割后的整数数组进行判断
两个点行相等或者列相等,不相等的行或列相减绝对值等于1
相邻的两个点才可以连通,不能连通返回false,重新输入
5)判断字符串成功后对渲染网格进行渲染
for(int i = 0; i < stringArray.length; i++){
a = Util.Mysplit(stringArray[i]);
xx1 = ((2*a[0]+1)+(2*a[2]+1))/2;
yy1 = ((2*a[1]+1)+(2*a[3]+1))/2;
renderGrid[xx1][yy1] = "[R]";
}
6)打印渲染网格
二、测试过程
无效数字测试
image.png1 2
a,b 3,4;
Invalid number format.
字符串格式错误
image.png1 2
12 34;
Incorrect command format.
连通性错误
image.png3 3
0,1 1,2;
Maze format error.
image.png
2 2
0,0 1,1;
Maze format error.
数字超出预定范围
image.png3 3
1,2 2,3;
Number out of range.
image.png
2 2
-1,0 0,1;
Number out of range.
网友评论