一、需求分析
1、输入的形式和输入值的范围
本程序需要三组输入,分别是迷宫的行数、列数,最后把迷宫的值作为一个二维数组进行输入,根据提示输入起点坐标(sx,sy)和终点坐标(ex,ey),输入的类型均是正整数。
2、输出的形式
求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。结果显示为迷宫的一条通路(i1,j1,d1),(i2,j2,d2),(i3,j2,d2)..如果没有找到通路,则会输出显示“No Way ”
3、程序所能达到的功能
以一个m×n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得到没有通路的结论。
4、测试数据
(1)正确数据
①输入迷宫的行数m=9,列数n=8,构建迷宫
输入的起点1 1 输入终点 9 8
正确的输出结果应该为:
(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),(4,1,2),(5,1,1),(5,2,1),(5,3,2),(6,3,1),
(6,4,1),(6,5,4),(5,5,1),(5,6,1),(5,7,2),(6,7,2),(7,7,2),(8,7,2),(9,7,1)
② 输入迷宫的行数m=5,列数n=6;构建迷宫
输入起点1 1 输入终点 5 4
正确的输出结果应该为:
(1,1,2),(2,1,2),(3,1,1),(3,2,2),(4,2,1),(4,3,2),(5,3,1)
③没有通路的情况
输入迷宫的行数m=5,列数n=6,构建迷宫
输入起点1 1 输入终点5 6
结果显示:”No Way!”
(2)错误数据
①输入迷宫的行数m=9,列数n=8 构建迷宫