コード例 #1
0
ファイル: 雷场+地雷.cs プロジェクト: a910692370/MineGame
 /// <summary>
 /// 重新这一局
 /// </summary>
 void againTheGame()
 {
     initializeVariable();
     foreach (Object control in this.Controls)
     {
         if (control is grid)
         {
             grid fg = (grid)control;
             fg.fasade = stateGrid.unknown;
         }
     }
     changeSurplusMineNum();
 }
コード例 #2
0
ファイル: 雷场+地雷.cs プロジェクト: a910692370/MineGame
        /// <summary>
        /// 方格点击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void gridClickInsident(object sender, MouseEventArgs e)
        {
            grid fg = (grid)sender;

            switch (e.Button)
            {
            case MouseButtons.Left:
                if (isGameContinue == true)
                {
                    if (fg.fasade == stateGrid.unknown || fg.fasade == stateGrid.query)
                    {
                        fg.fasade = stateGrid.open;
                        bombMethod(fg);
                        judgeWin();
                    }
                }
                break;

            case MouseButtons.Right:
                if (isGameContinue == true)
                {
                    if (markNum > 0)
                    {
                        if (fg.fasade == stateGrid.unknown || fg.fasade == stateGrid.query)
                        {
                            fg.fasade = stateGrid.mark;
                            markNum--;
                            changeSurplusMineNum();
                        }
                        else if (fg.fasade == stateGrid.mark)
                        {
                            fg.fasade = stateGrid.query;
                            markNum++;
                            changeSurplusMineNum();
                        }
                    }
                    else
                    {
                        if (fg.fasade == stateGrid.mark)
                        {
                            fg.fasade = stateGrid.query;
                            markNum++;
                            changeSurplusMineNum();
                        }
                    }
                }
                break;
            }
        }
コード例 #3
0
ファイル: 雷场+地雷.cs プロジェクト: a910692370/MineGame
 void createGrid()
 {
     for (int i = 0; i < gridListNum; i++)
     {
         for (int j = 0; j < gridRowNum; j++)
         {
             grid createGrid = new grid();
             createGrid.Location        = new Point((grid.width + gridInterval) * i, (grid.height + gridInterval) * j);
             createGrid.MouseDown      += gridClickInsident;
             createGrid.x_Coordinate    = i;
             createGrid.y_Coordinate    = j;
             gridCoordinateGather[i, j] = createGrid;
             this.Controls.Add(createGrid);
         }
     }
 }
コード例 #4
0
ファイル: 雷场+地雷.cs プロジェクト: a910692370/MineGame
 /// <summary>
 /// 重新下一局
 /// </summary>
 void againNextGame()
 {
     initializeVariable();
     foreach (Object control in this.Controls)
     {
         if (control is grid)
         {
             grid fg = (grid)control;
             fg.fasade       = stateGrid.unknown;
             fg.isMine       = false;
             fg.roundMineNum = 0;
         }
     }
     randomInstallMine();
     judgeRoundMineNum();
     changeSurplusMineNum();
 }
コード例 #5
0
ファイル: 雷场+地雷.cs プロジェクト: a910692370/MineGame
 /// <summary>
 /// 爆炸方法
 /// </summary>
 /// <param name="bomb"></param>
 void bombMethod(grid bomb)
 {
     if (bomb.isMine == true)
     {
         try
         {
             foreach (grid control in this.Controls)
             {
                 if (control.isMine == true)
                 {
                     control.fasade = stateGrid.bomb;
                 }
             }
         }
         catch (Exception) {; }
         isGameContinue       = false;
         bomb.BackgroundImage = Image.FromFile("Images\\主动爆炸.jpg");
         openNum = -1;  //最后一个打开是雷时,不判断赢
         MessageBox.Show("GameOver!!!游戏结束");
     }
 }
コード例 #6
0
ファイル: 雷场+地雷.cs プロジェクト: a910692370/MineGame
 /// <summary>
 /// 周围没有雷时,扩散
 /// </summary>
 void proliferateMethod()
 {
     if (roundMineNum == 0)
     {
         foreach (Object control in this.Parent.Controls)
         {
             if (control is grid)
             {
                 grid _grid = (grid)control;
                 if (_grid.fasade == stateGrid.unknown || _grid.fasade == stateGrid.query)
                 {
                     try
                     {
                         if (_grid.x_Coordinate + 1 == this.x_Coordinate && _grid.y_Coordinate + 1 == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                     try
                     {
                         if (_grid.x_Coordinate == this.x_Coordinate && _grid.y_Coordinate + 1 == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                     try
                     {
                         if (_grid.x_Coordinate - 1 == this.x_Coordinate && _grid.y_Coordinate + 1 == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                     try
                     {
                         if (_grid.x_Coordinate + 1 == this.x_Coordinate && _grid.y_Coordinate == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                     try
                     {
                         if (_grid.x_Coordinate - 1 == this.x_Coordinate && _grid.y_Coordinate == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                     try
                     {
                         if (_grid.x_Coordinate + 1 == this.x_Coordinate && _grid.y_Coordinate - 1 == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                     try
                     {
                         if (_grid.x_Coordinate == this.x_Coordinate && _grid.y_Coordinate - 1 == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                     try
                     {
                         if (_grid.x_Coordinate - 1 == this.x_Coordinate && _grid.y_Coordinate - 1 == this.y_Coordinate)
                         {
                             _grid.fasade = stateGrid.open;
                         }
                     }
                     catch { }
                 }
             }
         }
     }
 }