private void countMine(int r, int c) { int n = 0; int k1 = 1; int k2 = 2; int k3 = 1; int k4 = 2; if (r < 1) k1--; else if (r > Field.GetLength(0) - 2) k2--; if (c < 1) k3--; else if (c > Field.GetLength(1) - 2) k4--; for (int i = r - k1; i < r + k2; i++) { for (int j = c - k3; j < c + k4; j++) { if (Field[i, j].State == Score.Mine) n++; } } if (Field[r, c].State != Score.Mine) { Field[r, c].State = adiacentMine(n); } }
private void countAllMines() { for (int r = 0; r < Field.GetLength(0); r++) { for (int c = 0; c < Field.GetLength(1); c++) { countMine(r, c); } } }
private void randomMines() { Random rand = new Random(); int r, c; for (int i = 0; i < Mine; i++) { do { r = rand.Next(0, Field.GetLength(0)); c = rand.Next(0, Field.GetLength(1)); } while (Field[r, c].State == Score.Mine); Field[r, c].State = Score.Mine; } countAllMines(); }