需求
1 设置路障
2 打印出原地图
3 初始化地图后用四种方式找到不同的路径
4 打印出路径
代码
以下是代码
/**
*
*/
package maze;
/**
* @author 啦啦啦
*
*/
public class MazeTest01 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建二维数组模拟迷宫
// 8行8列
char[][] map = new char[15][15];
Pri(map);
}
public static void Pri(char[][] map) {
// 初始化地图
initMap(map);
// 输出原地图
System.out.println("原地图-------------------------");
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
// 使用递归回溯给小球找路
// map是引用类型,递归修改的会是同一张地图
// 路径1
setWay1(map, 1, 1);
// 判断路径是否存在
// 如果第一个存在,那么后面的路径都存在
boolean isExist = false;
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
if ('O' == map[i][j]) {
isExist = true;
}
}
}
// 输出路径1
if (isExist == true) {
System.out.println("------------路径1-------------");
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
} else {
System.out.println("路径1不存在");
}
System.out.println();
// 路径2
initMap(map);
setWay2(map, 1, 1);
// 输出路径2
if (isExist == true) {
System.out.println("------------路径2-------------");
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println()