在minesweepear上创建大于8x8的电路板会导致电路板错误

时间:2019-12-10 18:30:55

标签: java android

所以我正在做扫雷器
8x8板还可以,但是在12x12和16x16上,炸弹周围的数字错了

 public void setTablero() {

        for (int f = 0; f < TAM; f++) {
            for (int c = 0; c < TAM; c++) {
                tablero[f][c] = 0;

                System.out.println(TAM);
            }
        }

        for (int mina = 0; mina < minas; mina++) {
            //Busca una posición aleatoria donde no haya otra bomba
            int f, c;
            do {
                Random rand = new Random();
                f = rand.nextInt(TAM);
                c = rand.nextInt(TAM);
            } while (tablero[f][c] == -1);
            //Pone la bomba
            tablero[f][c] = -1;
            //Recorre el contorno de la bomba e incrementa los contadores
            for (int f2 = max(0, f - 1); f2 < min(TAM, f + 2); f2++) {
                for (int c2 = max(0, c - 1); c2 < min(TAM, c + 2); c2++) {
                    if (tablero[f2][c2] != -1) { //Si no es bomba
                        tablero[f2][c2]++; //Incrementa el contador
                    }
                }
            }
        }

0 个答案:

没有答案