Exemplo n.º 1
0
        //Зайвий return
        public void Move()
        {
            Random rnd = new Random();

            if (_desk.CheckersHaveToBit(Color).Count != 0)
            {
                do
                {
                    int           r1  = rnd.Next(0, _desk.CheckersHaveToBit(Color).Count - 1);
                    CheckerOnDesk ch1 = _desk.CheckersHaveToBit(Color)[r1];

                    int   r2 = rnd.Next(0, _desk.IsToBit(ch1).Count - 1);
                    Point p2 = _desk.IsToBit(ch1)[r2];

                    _desk.MoveCheking(ch1.Point, p2, out _isBeat, Color);

                    _movingChecker = _desk.GetCheckerOnDesk(p2);
                    FirstPoint     = ch1.Point;
                    SecondPoint    = p2;
                }while (_desk.IsToBit(_movingChecker).Count > 0);
            }
            else
            {
                if (_desk.ChekersToMove(Color).Count != 0)
                {
                    int           r1  = rnd.Next(0, _desk.ChekersToMove(Color).Count - 1);
                    CheckerOnDesk ch1 = _desk.ChekersToMove(Color)[r1];

                    int   r2 = rnd.Next(0, _desk.IsToMove(ch1).Count - 1);
                    Point p2 = _desk.IsToMove(ch1)[r2];

                    _desk.MoveCheking(ch1.Point, p2, out _isBeat, Color);

                    FirstPoint  = ch1.Point;
                    SecondPoint = p2;
                }
            }
            return;
        }
Exemplo n.º 2
0
        //Можна створити змінну isBeat в конструкції else
        private void SecondClick(Point p, out bool isCangeChecker, out bool wasBeat)
        {
            _isCorrect = false;
            _endMove   = false;
            bool isBeat = false;

            isCangeChecker = false;
            wasBeat        = false;

            if (_moveStarted && !LightPoints.Contains(p))
            {
                return;
            }

            if (!LightPoints.Contains(p))
            {
                if (!_desk.IsEmpty(p) && _desk.GetCheckerOnDesk(p).Color == this.Color)
                {
                    if (_desk.CheckersHaveToBit(this.Color).Count == 0)
                    {
                        _isCorrect     = true;
                        _endMove       = false;
                        isCangeChecker = true;
                    }
                    else
                    {
                        if (_desk.IsToBit(_desk.GetCheckerOnDesk(p)) != null)
                        {
                            _isCorrect     = true;
                            _endMove       = false;
                            isCangeChecker = true;
                        }
                    }
                }
            }
            else
            {
                _desk.MoveCheking(_movingChecker.Point, p, out isBeat, Color);
                _movingChecker = _desk.GetCheckerOnDesk(p);
                _isCorrect     = true;
                _endMove       = true;
                wasBeat        = isBeat;
                LightPoints    = null;

                if (isBeat)
                {
                    _endMove     = _desk.IsToBit(_movingChecker).Count == 0;
                    _moveStarted = true;
                }
            }
        }