package com.liu.exam02;
/**
* 迷宫问题
*
*/
public class Maze {
//自己定义一个迷宫
public static String Maze[][]={
{"▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇"},
{"▇","▁","▁","▁","▇","▁","▁","▁","▁","▁","▁","▁","▁","▇","▇","▇","▇"},
{"▇","▇","▇","▁","▇","▇","▁","▇","▁","▇","▇","▇","▁","▇","▁","▁","▇"},
{"▇","▁","▇","▁","▇","▁","▁","▇","▁","▇","▁","▇","▁","▇","▁","▇","▇"},
{"▇","▁","▇","▁","▇","▇","▁","▇","▁","▇","▁","▇","▁","▇","▁","▇","▇"},
{"▇","▁","▁","▁","▁","▁","▁","▇","▁","▇","▁","▇","▁","▇","▁","▇","▇"},
{"▇","▇","▇","▁","▇","▇","▁","▇","▁","▇","▁","▇","▁","▇","▁","▇","▇"},
{"▇","▁","▁","▇","▁","▇","▁","▇","▁","▇","▁","▁","▁","▇","▁","▇","▇"},
{"▇","▁","▇","▁","▁","▁","▁","▁","▁","▁","▇","▇","▇","▇","▁","▇","▇"},
{"▇","▁","▇","▇","▇","▇","▇","▁","▇","▇","▇","▇","▁","▁","▁","▇","▇"},
{"▇","▁","▇","▁","▁","▁","▁","▁","▇","▁","▁","▁","▁","▇","▁","▁","▇"},
{"▇","▁","▇","▁","▇","▇","▇","▁","▇","▁","▇","▁","▇","▇","▇","▁","▇"},
{"▇","▁","▇","▁","▇","▁","▁","▁","▇","▁","▇","▁","▁","▇","▇","▁","▇"},
{"▇","▁","▇","▁","▇","▇","▇","▇","▇","▁","▇","▇","▁","▇","▇","▁","▇"},
{"▇","▁","▇","▁","▇","▁","▁","▁","▁","▁","▇","▇","▁","▇","▇","▁","▇"},
{"▇","▁","▇","▁","▇","▁","▇","▁","▇","▇","▁","▇","▁","▇","▁","▁","▇"},
{"▇","▁","▇","▁","▇","▁","▇","▁","▇","▁","▁","▇","▁","▇","▇","▇","▇"},
{"▇","▁","▇","▁","▇","▁","▇","▁","▇","▁","▇","▇","▁","▁","▁","▁","▇"},
{"▇","▁","▁","▁","▇","▁","▇","▁","▇","▁","▇","▇","▁","▇","▇","▁","▇"},
{"▇","▇","▇","▁","▇","▇","▇","▁","▇","▁","▇","▇","▁","▇","▇","▁","▇"},
{"▇","▁","▇","▁","▁","▁","▁","▁","▇","▁","▇","▇","▁","▇","▇","▁","▇"},
{"▇","▁","▁","▁","▇","▇","▇","▇","▇","▁","▁","▁","▁","▁","▇","▁","▇"},
{"▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇","▇"},
};
public static void main(String[] args) {
System.out.println("迷宫的起点是=(1,1):");
System.out.println("迷宫的终点是=(22,15):");
System.out.println("迷宫图形");
System.out.println("---------------------------------------");
for (int i = 0; i < 23; i++) {
for (int j = 0; j < 17; j++) {
System.out.printf("%4s",Maze[i][j]);
}
System.out.println();
}
System.out.println("---------------------------------------");
System.out.println("调用函数:Way");
Way(1, 1);
Maze[1][1]="起";
Maze[21][15]="终";
System.out.println("---------------------------------------");
for (int i = 0; i < 23; i++) {
for (int j = 0; j < 17; j++) {
System.out.printf("%4s",Maze[i][j]);
}
System.out.println();
}
System.out.println("---------------------------------------");
System.out.println("其中 ╋ 为走出迷宫的路线");
System.out.println("其中 ○ 为走过的路线,但是没有走出去");
}//main
public static boolean Way(int x,int y){
if(Maze[21][15]=="╋"){
return true;
}else if(Maze[x][y]=="▁"){
Maze[x][y]="╋";
if(Way(x,y+1)){
return true;
}else if(Way(x,y-1)){
return true;
}else if(Way(x-1,y)){
return true;
}else if(Way(x+1,y)){
return true;
}else{
Maze[x][y]="○";//走过,但是没有走出去
return false;
}
}else{
return false;
}
}
}