Пример #1
0
 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);
     }
 }
Пример #2
0
 private void countAllMines()
 {
     for (int r = 0; r < Field.GetLength(0); r++)
     {
         for (int c = 0; c < Field.GetLength(1); c++)
         {
             countMine(r, c);
         }
     }
 }
Пример #3
0
 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();
 }