首页 > 代码库 > 老鼠走迷宫
老鼠走迷宫
理论:
解法(回溯法);
老鼠的走法有上、左、下、右四个方向,在每前进一格之后就选一个方向前进,无法前
进时退回选择下一个可前进方向,如此在阵列中依序测试四个方向,直到走到出口为止,这是
递回的基本题。
java实现:
package 经典;public class 老鼠走迷官1 { public 老鼠走迷官1() { // TODO 自动生成的构造函数存根 } static int maze[][] = //2表示围墙 { {2, 2, 2, 2, 2, 2, 2}, {2, 0, 0, 0, 0, 0, 2}, {2, 0, 2, 0, 2, 0, 2}, {2, 0, 0, 0, 0, 2, 2}, {2, 2, 0, 2, 0, 2, 2}, {2, 0, 2, 0, 0, 0, 2}, {2, 2, 2, 2, 2, 2, 2} }; static int success=0; static int startI = 1, startJ = 1; static int endI = 5, endJ = 5; public static int visit(int i,int j){ maze[i][j]=1; if(i==endI&&j==endJ) success=1; if(success!=1&&maze[i][j+1]==0) visit(i,j+1); //向下 if(success!=1&&maze[i+1][j]==0) visit(i+1,j); //向右 if(success!=1&&maze[i][j-1]==0) visit(i,j-1); //向左 if(success!=1&&maze[i-1][j]==0) visit(i-1,j); //向上 if(success!=1) maze[i][j]=0; return success; } public static void main(String[] args) { System.out.println("显示迷宫"); for(int i=0 ;i<7; i++) { for(int j=0; j<7; j++) { System.out.print(maze[i][j]+","); } System.out.println(); } System.out.println(); if(visit(startI,startJ)==1){ for(int i=0 ;i<7; i++) { for(int j=0; j<7; j++) { System.out.print(maze[i][j]+","); } System.out.println(); } } } }
老鼠走迷宫
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。