迭代解决迷宫问题
public class Maze {
public static void main(String[] args){
maps Mygame = new maps();
int[][] m1 = Mygame.map();
for(int i = 0; i<m1.length; i++) {
for (int j = 0; j <m1[i].length; j++) {
System.out.print(m1[i][j] + " ");
}
System.out.println();
}
FINDWAYS Myway = new FINDWAYS();
Myway.findway(m1,1,1);
System.out.println("路线如下");
for(int i = 0; i<m1.length; i++) {
for (int j = 0; j <m1[i].length; j++) {
System.out.print(m1[i][j] + " ");
}
System.out.println();
}
}
}
class maps{
public int[][] map(){
int mapsize[][] = new int [8][7];
for(int i = 0; i<mapsize.length; i++){
for(int j = 0; j<mapsize[i].length; j++){
mapsize[0][j] = 1;
mapsize[7][j] = 1;
mapsize[i][0] = 1;
mapsize[i][6] = 1;
}
}
mapsize[3][1] = 1;
mapsize[3][2] = 1;
mapsize[1][4] = 1;
mapsize[2][4] = 1;
mapsize[3][4] = 1;
mapsize[5][4] = 1;
mapsize[5][3] = 1;
mapsize[5][2] = 1;
return mapsize;
}
}
class FINDWAYS{
public boolean findway(int[][] map,int i,int j){
if(map[6][5] == 2){
return true;
}else {
if(map[i][j] ==0 ){
map[i][j] = 2;
if(findway(map,i+1,j)){
return true;
}else if(findway(map,i,j+1)){
return true;
}else if(findway(map,i,j-1)){
return true;
}else if (findway(map,i-1,j)){
return true;
}else{
map[i][j] = 3;
return false;
}
}else{
return false;
}
}
}
}
迷宫本宫

计算出的通路
