- public class MouseToMaze {
- int ENDX , ENDY ;
- int STARTX , STARTY ;
- boolean pass = false ;
- public static void main(String[] args){
- MouseToMaze mtm = new MouseToMaze();
- mtm.setMazeSTART(1, 1);
- mtm.setMazeEND(5, 5);
- int[][]maze ={{2, 2, 2, 2, 2, 2, 2},
- {2, 0, 0, 0, 0, 0, 2},
- {2, 0, 2, 0, 2, 0, 2},
- {2, 0, 0, 2, 0, 2, 2},
- {2, 2, 0, 2, 0, 2, 2},
- {2, 0, 0, 0, 0, 0, 2},
- {2, 2, 2, 2, 2, 2, 2}};
- mtm.Go_Maze(maze);
- }
- public void setMazeSTART(int x , int y){
- STARTX = x ;
- STARTY = y ;
- }
- public void setMazeEND(int x , int y){
- ENDX = x;
- ENDY = y ;
- }
- public void Go_Maze(int[][] maze ){
- if(mouse_visit(maze , STARTX , STARTY)){
- System.out.println("PASS");
- for(int[] x : maze){
- for(int y : x){
- if(y == 2)
- System.out.print("▉");
- else if(y==1)
- System.out.print("X");
- else
- System.out.print(" ");
- }
- System.out.println();
- }
- }else{
- System.out.println("NO PASS");
- }
- }
- public boolean mouse_visit(int[][] maze , int x , int y){
- maze[x][y] = 1 ;//老鼠位置;
- if(x == ENDX &&y == ENDY)
- pass = true ;
- if(!pass && maze[x][y+1] == 0) //東
- mouse_visit(maze , x , y+1);
- if(!pass && maze[x+1][y] == 0) //南
- mouse_visit(maze , x+1 , y);
- if(!pass && maze[x][y-1] == 0) //西
- mouse_visit(maze , x , y-1);
- if(!pass && maze[x-1][y] == 0)
- mouse_visit(maze , x-1 , y+1);
- if(!pass)
- maze[x][y] = 0 ;//死路退回可選之路
- return pass;
- }
- }
2017年7月29日 星期六
(Java)老鼠走迷宮
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。