Advertisement
ostyleo

Untitled

Mar 15th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.41 KB | None | 0 0
  1.     private boolean solveDFS(Integer[][] matrix, int i, int j) {
  2.         if (i == dimension - 1 && j >= dimension) return true;
  3.         if (j == dimension) {
  4.             System.out.println(convertGameToShow(matrix));
  5.             return solveDFS(matrix.clone(), i + 1, 0);
  6.         }
  7.         if (matrix[i][j] != -1) {
  8.             return solveDFS(matrix.clone(), i, j + 1);
  9.         } else {
  10.             for (int num = 1; num <= dimension; num++) {
  11.                 Integer[][] aux = matrix.clone();
  12.                 aux[i][j] = num;
  13.                 if (check(aux, i, j)) {
  14.                     matrix[i][j] = num;
  15.                     if (solveDFS(matrix.clone(), i, j + 1)) {
  16.                         gameMatrix = matrix;
  17.                         return true;
  18.                     }
  19.                 }
  20.             }
  21.             matrix[i][j] = -1;
  22.         }
  23.         return false;
  24.     }
  25.  
  26.     public boolean check(Integer[][] game, int i, int j) {
  27.         ArrayList<Integer> lineVal = new ArrayList<>();
  28.         ArrayList<Integer> colVal = new ArrayList<>();
  29.         for (int k = 0; k < dimension; k++) {
  30.             if (game[i][k] != -1 && lineVal.contains(game[i][k]))
  31.                 return false;
  32.             else lineVal.add(game[i][k]);
  33.  
  34.             if (game[k][j] != -1 && colVal.contains(game[k][j]))
  35.                 return false;
  36.             else colVal.add(game[k][j]);
  37.         }
  38.         return true;
  39.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement