?? hw01.java
字號:
/**
* 作業(yè)題目:
* 老鼠走迷宮,請在 15x15的矩陣中,隨機產(chǎn)生0與1,
* 以表示為通道或是牆,請找出這個迷宮的所有可以走的路徑。
* @author E95024251 吳昇翰
*/
public class HW01{
public static void main(String[] args) {
int maze[][]=new int[15][15];
int i,j;
//initial
for(i=0;i<15;i++)
for(j=0;j<15;j++)
maze[i][j]=0;
//make border
for(i=0;i<15;i++){
maze[0][i] = 1;
maze[14][i] = 1;
maze[i][0] = 1;
maze[i][14]=1;
}
int xx,yy; //random position
int x_tmp,y_tmp; //backup position
int dir; //directory way
int count;
for(i=0;i<150;i++){
//取偶數(shù)點
xx = (int)(Math.random()*7)*2;
yy = (int)(Math.random()*7)*2;
x_tmp = xx;
y_tmp = yy;
if(maze[xx][yy] == 0){
do{
count = 0;
xx = x_tmp;
yy = y_tmp;
dir = (int)(Math.random()*4);
do{
count = count + 1;
switch (dir)
{
case 0: xx = xx-1;
break;
case 1: xx = xx+1;
break;
case 2: yy = yy+1;
break;
case 3: yy = yy-1;
break;
}
}while(maze[xx][yy]!=1); // 確認是否已經(jīng)碰到牆壁
}while(count > 14); //長度不能超過陣列-邊緣的長度否則會產(chǎn)生死路
xx = x_tmp;
yy = y_tmp;
do{
maze[xx][yy] = 1;
switch (dir)
{
case 0: xx = xx-1;
break;
case 1: xx = xx+1;
break;
case 2: yy = yy+1;
break;
case 3: yy = yy-1;
break;
}
}while(maze[xx][yy] != 1);
}//if end
}//for end
System.out.println("顯示迷宮:");
//列印迷宮
for(i=0;i<maze.length;i++){
for(j=0;j<maze.length;j++){
if(maze[i][j]==1)
System.out.print("■");
else
System.out.print("□");
}
System.out.println("");
}
Maxe mouse = new Maxe();
mouse.setStart(1, 1);
mouse.setEnd(13, 13);
mouse.go(maze);
}//main end
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -