Ejemplo n.º 1
0
 public void LeftDown(int x, int y)
 {
     if (_arrayMine[x, y].Status == 0 || _arrayMine[x, y].Status == -1)
     {
         _dq.Init(x, y, 0);
     }
     ThisQueue.Enqueue(_dq);
 }
Ejemplo n.º 2
0
 public void LeftOut(int x, int y)
 {
     if ((_arrayMine[x, y].Status == 0 || _arrayMine[x, y].Status == -1) && x >= 0 && x < _columns && y >= 0 &&
         y < _rows)
     {
         _dq.Init(x, y, 9);
         ThisQueue.Enqueue(_dq);
     }
 }
Ejemplo n.º 3
0
        public void RightClick(int x, int y)
        {
            switch (_arrayMine[x, y].Status)
            {
            case 0:
                _arrayMine[x, y].Status = -2;
                _dq.Init(x, y, 10);
                ThisQueue.Enqueue(_dq);
                for (var i = 0; i < 8; i++)
                {
                    if (x + _near[i, 0] >= 0 && x + _near[i, 0] < _columns && y + _near[i, 1] >= 0 &&
                        y + _near[i, 1] < _rows)
                    {
                        _arrayMine[x + _near[i, 0], y + _near[i, 1]].NearMineRemain--;
                    }
                }
                RemainMine--;
                _remainArea--;
                break;

            case -1:
                _arrayMine[x, y].Status = 0;
                _dq.Init(x, y, 9);
                ThisQueue.Enqueue(_dq);
                break;

            case -2:
                if (Mark)
                {
                    _arrayMine[x, y].Status = -1;
                    _dq.Init(x, y, 11);
                    ThisQueue.Enqueue(_dq);
                }
                else
                {
                    _arrayMine[x, y].Status = 0;
                    _dq.Init(x, y, 9);
                    ThisQueue.Enqueue(_dq);
                }

                for (var i = 0; i < 8; i++)
                {
                    if (x + _near[i, 0] >= 0 && x + _near[i, 0] < _columns && y + _near[i, 1] >= 0 &&
                        y + _near[i, 1] < _rows)
                    {
                        _arrayMine[x + _near[i, 0], y + _near[i, 1]].NearMineRemain++;
                    }
                }
                RemainMine++;
                _remainArea++;
                break;
            }
        }
Ejemplo n.º 4
0
 //the method appear when player win the game
 public void Win()
 {
     RemainMine = 0;
     for (var x = 0; x < _columns; x++)
     {
         for (var y = 0; y < _rows; y++)
         {
             if (_arrayMine[x, y].Status == 0 || _arrayMine[x, y].Status == -1)
             {
                 _arrayMine[x, y].Status = -2;
                 _dq.Init(x, y, 10);
                 ThisQueue.Enqueue(_dq);
             }
         }
     }
 }
Ejemplo n.º 5
0
        //the method use when player miss the game
        public void Finished()
        {
            for (var x = 0; x < _columns; x++)
            {
                for (var y = 0; y < _rows; y++)
                {
                    switch (_arrayMine[x, y].Status)
                    {
                    case 0:
                        if (_arrayMine[x, y].IsMine)
                        {
                            _dq.Init(x, y, 14);
                            ThisQueue.Enqueue(_dq);
                        }

                        break;

                    case -1:
                        if (_arrayMine[x, y].IsMine)
                        {
                            _dq.Init(x, y, 14);
                            ThisQueue.Enqueue(_dq);
                        }

                        break;

                    case -2:
                        if (!_arrayMine[x, y].IsMine)
                        {
                            _dq.Init(x, y, 13);
                            ThisQueue.Enqueue(_dq);
                        }

                        break;
                    }
                }
            }
        }
Ejemplo n.º 6
0
 public void LeftClick(int x, int y)
 {
     if (_arrayMine[x, y].Status == 0 || _arrayMine[x, y].Status == -1)
     {
         _arrayMine[x, y].Status = 1;
         if (_arrayMine[x, y].IsMine)
         {
             IsFinished = true;
             _dq.Init(x, y, 12);
             ThisQueue.Enqueue(_dq);
         }
         else
         {
             _dq.Init(x, y, _arrayMine[x, y].NearMine);
             ThisQueue.Enqueue(_dq);
             _remainArea--;
             if (_remainArea == RemainMine)
             {
                 IsWin = true;
             }
             if (_arrayMine[x, y].NearMine == 0)
             {
                 for (var i = 0; i < 8; i++)
                 {
                     if (x + _near[i, 0] >= 0 && x + _near[i, 0] < _columns && y + _near[i, 1] >= 0 &&
                         y + _near[i, 1] < _rows)
                     {
                         if (_arrayMine[x + _near[i, 0], y + _near[i, 1]].Status == 0 ||
                             _arrayMine[x + _near[i, 0], y + _near[i, 1]].Status == -1)
                         {
                             LeftClick(x + _near[i, 0], y + _near[i, 1]);
                         }
                     }
                 }
             }
         }
     }
 }