寻找迷宫的出路
2013-04-23 16:47
197 查看
public class Maze { private final int TRIED=3; //标识这个点已走过 private final int PATH=7; //标识这个点是通路 private int [] [] grid={{1,1,1,0,1,1,0,0,0,1,1,1,1}, {1,0,1,1,1,0,1,1,1,1,0,0,1}, {0,0,0,0,1,0,1,0,1,0,1,0,0}, {1,1,1,0,1,1,1,0,1,0,1,1,1}, {1,0,1,0,0,0,0,1,1,1,0,0,1}, {1,0,1,1,1,1,1,1,0,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0}, {1,1,1,1,1,1,1,1,1,1,1,1,1}}; public boolean traverse(int row,int column){ //遍历当前位置的上下左右是否有通路 boolean done=false; if(valid(row,column)){ //调用valind()方法检查当前坐标的值是否为1 grid[row][column]=TRIED; if(row==grid.length-1&&column==grid[0].length-1) //递归调用的出口,当前坐标是迷宫的出口 done=true; else{ done=traverse(row+1,column); //检查当前坐标的下方是否为通路 if(!done){ done=traverse(row,column+1);//检查当前坐标的右方是否为通路 } if(!done) done=traverse(row-1,column); //检查当前坐标上方是否为通路 if(!done) done=traverse(row,column-1);//检查当前坐标左方是否为通路 } if(done){ // 如果是通路,怎么把当前坐标的数字改为PATH=7 grid[row][column]=PATH; } } return done; } private boolean valid(int row,int column){ //判断是当前坐标上的数字是否为1,是则返回true,否则返回false boolean result=false; if(row>=0&&row<grid.length&&column>=0&&column<grid[row].length) // 检查当前坐标的合法性 if(grid[row][column]==1) result=true; return result; } public String toString(){ //覆盖toString()方法,用来输出数组 String result="\n"; for(int row=0;row<grid.length;row++){ for(int column=0;column<grid[row].length;column++){ result+=grid[row][column]+""; } result+="\n"; } return result; } }
public class MazeSearch { public static void main(String[] args){ Maze labyrinth=new Maze(); System.out.println(labyrinth); if(labyrinth.traverse(0,0 )) System.out.println("The maze was successfully traversed!"); else System.out.println("There is no possible path."); System.out.println(labyrinth); } }
相关文章推荐
- 寻找迷宫出路
- 寻找迷宫的一条出路 (o:通路,X障碍)
- java实现从迷宫寻找出路算法(广度优先搜索)
- 广度优先寻找迷宫!
- 迷路了,寻找出路
- 2014华为机试,迷宫矩阵寻找单词的存在与否
- 寻找一条通过迷宫的路径
- 寻找出路:企业高层面临的困境及对策
- 关于用深度优先算法生成迷宫与寻找路径的一些回忆
- 算法之老鼠找迷宫2-找出所有出路
- 2014华为机试,迷宫矩阵寻找单词的存在与否
- 求迷宫出路以及最优解,小试牛刀。
- 一个创建迷宫并寻找通道的小程序
- java寻找迷宫路径
- 自媒体人的生存之道,个人自媒体该如何寻找出路?
- 软件开发人员(程序员)的出路(换个环境吧,寻找工作的热情、寻求终生的依靠)
- 在内存墙的困扰中寻找出路
- 仙岛求药(迷宫寻找最短路径)DFS
- 一个搜索迷宫出路的程序
- “觉醒即是转机,思变为时不晚”,送给痛心疾首寻找出路的人