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);
}
}
网友评论