public class MyMaze {
//定义下标
//private static int startPostI;//入口I下标
//private static int startPostJ;//入口J下标
private static int endPostI;//出口I下标
private static int endPostJ;//出口I下标
//设置迷宫入口的坐标
// public void setStart(int startPostI,int startPostJ) {
//
// MyMaze.startPostI=startPostI;
//
// MyMaze.startPostJ=startPostJ;
// }
//设置迷宫出口的坐标
public void setEnd(int endPostI, int endPostJ) {
MyMaze.endPostI=endPostI;
MyMaze.endPostJ=endPostJ;
}
public static void visted(int[][] cell,int i,int j) {
cell[i][j]=1;
if(i==endPostI&&j==endPostJ) { //找到出口
System.out.println("找到了一条出口");
for(int m=0;m<cell.length;m++) {
for(int n=0;n<cell[0].length;n++) {
if(cell[m][n]==2) {
System.out.print("2");
}else if(cell[m][n]==1) {
System.out.print("*");
}else {
System.out.print(" ");
}
}
System.out.println();
}
}
//向左边找
if(cell[i][j-1]==0) {
visted(cell,i,j-1);
}
//向右
if(cell[i][j+1]==0) {
visted(cell,i,j+1);
}
//向上
if(cell[i-1][j]==0) {
visted(cell,i-1,j);
}
//向下
if(cell[i+1][j]==0) {
visted(cell,i+1,j);
}
cell[i][j]=0;
}
@SuppressWarnings("static-access")
public static void main(String[] args) {
int[][] maze={
{2,2,2,2,2,2,2,2,2},
{2,0,0,0,0,0,0,0,2},
{2,0,2,2,0,2,2,0,2},
{2,0,2,0,0,2,0,0,2},
{2,0,2,0,2,0,2,0,2},
{2,0,0,0,0,0,2,0,2},
{2,2,0,2,2,0,2,2,2},
{2,0,0,0,0,0,0,0,2},
{2,2,2,2,2,2,2,2,2}
};
MyMaze cell=new MyMaze();
//cell.setStart(1, 1);
cell.setEnd(7, 7);
cell.visted(maze, 1, 1);
}
}
java算法之迷宫(递归)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 朋友圈被小程序刷屏了,甚至很多人截了印证自己站在时尚前沿的装逼图。“无需安装、触手可及、用完即走、无需卸载”,大家...