Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int dragons(int[][] maze)
- {
- return dragons(maze,0,0,0);
- }
- private static int dragons(int[][] maze, int i, int j, int dragons)
- {
- if (i == maze.length || j == maze[0].length || i < 0 || j <0){ //if out of maze
- return Integer.MAX_VALUE;
- }
- int temp = maze[i][j];
- if (temp == 0 || temp == -1){ //if cell has a wall
- return Integer.MAX_VALUE;
- }
- if (temp == 3){ //if found dragon
- dragons++;
- }
- if (i == maze.length - 1 && j == maze[0].length - 1){ //if at last cell
- return dragons;
- }
- maze[i][j] = -1;
- int down = dragons(maze, i + 1, j,dragons);
- int right = dragons(maze, i, j+1,dragons);
- int up = dragons(maze, i - 1, j,dragons);
- int left = dragons(maze, i, j-1,dragons);
- maze[i][j] = temp;
- return min(down,right,up,left);
- }
- private static int min(int a, int b, int c, int d)
- {
- int min = a;
- if (b < min)
- min = b;
- if (c < min)
- min = c;
- if (d <min)
- min = d;
- return min;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement