publicint[][] generateMinesweeperMatrix(int m, int n, int k) { int[][] matrix = newint[m][n];
for (inti=0; i < k; i++) { matrix[i / m][i % n] = -1; } for (inti=0; i < m * n; i++) { intrandomIndex= ThreadLocalRandom.current().nextInt(i, m * n); swap(matrix, i, randomIndex); }
for (inti=0; i < m; i++) { for (intj=0; j < n; j++) { if (matrix[i][j] == -1) { continue; }
intcount=0; for (int[] direction : DIRECTIONS) { intnextI= i + direction[0]; intnextJ= j + direction[1]; if (nextI >= 0 && nextI < m && nextJ >= 0 && nextJ < n && matrix[nextI][nextJ] == -1) { count++; } } matrix[i][j] = count; } }