Advertisement
Guest User

Maze Solver

a guest
Jan 15th, 2012
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.83 KB | None | 0 0
  1. /*
  2.     Maze Solver
  3.  
  4. */
  5.  
  6. class Analizza {
  7.   private int xl, yl;
  8.  
  9.   private char[][] maze = { {'*','*','*','*','*','S','*','*','*'},
  10.                             {'*',' ',' ',' ',' ',' ','*',' ','E'},
  11.                             {'*','*','*',' ','*','*','*',' ','*'},
  12.                             {'*',' ',' ',' ','*',' ',' ',' ','*'},
  13.                             {'*','*',' ','*','*','*',' ','*','*'},
  14.                             {'*','*',' ','*',' ','*',' ',' ','*'},
  15.                             {'*','*',' ','*','*','*','*',' ','*'},
  16.                             {'*','*',' ',' ',' ',' ',' ',' ','*'},
  17.                             {'*','*','*','*','*','*','*','*','*'}
  18.                           };
  19.  
  20.   Analizza() {
  21.     xl = maze.length-1;
  22.     yl = maze[0].length-1;
  23.   }
  24.  
  25.  
  26.   boolean analizzaStruttura(int x, int y) {
  27.     if(maze[x][y] == 'E') return true;
  28.     if(maze[x][y] == '*') return false;
  29.     if(maze[x][y] == '+') return false;
  30.     maze[x][y] = '+';
  31.    
  32.     if(analizzaStruttura(x, y-1)) return true;
  33.     if(analizzaStruttura(x+1,y)) return true;
  34.     if(analizzaStruttura(x, y+1)) return true;
  35.     if(analizzaStruttura(x-1, y)) return true;
  36.    
  37.     maze[x][y] = ' ';
  38.     return false;
  39.   }
  40.  
  41.   void stampa() {
  42.     maze[0][5] = 'S';
  43.     for(int i=0; i<maze.length; i++) {
  44.       for(int j=0; j<maze[0].length; j++) {
  45.         System.out.print(maze[i][j]+" ");
  46.       }
  47.       System.out.println();
  48.     }
  49.   }
  50. }
  51.  
  52. class TestMaze {
  53.   public static void main(String[] args) {
  54.     Analizza a = new Analizza();
  55.    
  56.     System.out.println("\n\tLabirinto prima della ricerca della soluzione:\n");
  57.     a.stampa();
  58.    
  59.     if(a.analizzaStruttura(0,5)) {
  60.       System.out.println("\n\n\tSoluzione:\n\n");
  61.       a.stampa();
  62.     }
  63.     else {
  64.       System.out.println("\nLa soluzione non e' presente");
  65.     }
  66.   }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement