Пример #1
0
 private void OpenMine(MineButton b)
 {
     int i = b.X;
     int j = b.Y;
     b.IsOpen = 1;
     b.Enabled = false;
     OpenNum++;
     if (b.Tip == 0)
     {
         b.Text = "";
         if (j - 1 >= 0) {
             if (button[i, j - 1].IsOpen == 0) {
                 OpenMine(button[i, j - 1]);
             }
         }
         if (i + 1 < Hang) {
             if (button[i + 1, j].IsOpen == 0) {
                 OpenMine(button[i + 1, j]);
             }
         }
         if (j + 1 < Lie) {
             if (button[i, j + 1].IsOpen == 0) {
                 OpenMine(button[i, j + 1]);
             }
         }
         if (i - 1 >= 0) {
             if (button[i - 1, j].IsOpen == 0) {
                 OpenMine(button[i - 1, j]);
             }
         }
     }
     else
     {
         b.Text = b.Tip.ToString();
     }
 }
Пример #2
0
 private void InitMine()
 {
     for (int i = 0; i < Hang; i++){
         for (int j = 0; j < Lie; j++) {
             button[i, j] = new MineButton();
             button[i, j].Location = new Point(5 + i * 30, 10 + j * 30);
             button[i, j].X = i;
             button[i, j].Y = j;
             button[i, j].IsOpen = 0;
             button[i, j].IsMine = 0;
             groupBox1.Controls.Add(button[i, j]);
             button[i, j].MouseDown += new MouseEventHandler(bt_MouseDown);
         }
     }
     Random rd = new Random();
     for (int i = 0; i < TotalMine; i++) {
         int p1 = rd.Next(0, Hang);
         int p2 = rd.Next(0, Lie);
         if (button[p1, p2].IsMine == 1) {
             i--;
             continue;
         }
         button[p1, p2].IsMine = 1;
     }
     for (int i = 0; i < Hang; i++) {
         for (int j = 0; j < Lie; j++) {
             if (button[i, j].IsMine == 1) {
                 if (i - 1 >= 0 && j - 1 >= 0) {
                     button[i - 1, j - 1].Tip++;
                 }
                 if (i - 1 >= 0) {
                     button[i - 1, j].Tip++;
                 }
                 if (i - 1 >= 0 && j + 1 < Lie) {
                     button[i - 1, j + 1].Tip++;
                 }
                 if (j - 1 >= 0) {
                     button[i, j - 1].Tip++;
                 }
                 if (j + 1 < Lie) {
                     button[i, j + 1].Tip++;
                 }
                 if (i + 1 < Hang && j - 1 >= 0) {
                     button[i + 1, j - 1].Tip++;
                 }
                 if (i + 1 < Hang) {
                     button[i + 1, j].Tip++;
                 }
                 if (i + 1 < Hang && j + 1 < Lie) {
                     button[i + 1, j + 1].Tip++;
                 }
             }
         }
     }
 }