示例#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;
        }
示例#2
0
        public void Move(Point point)
        {
            this.EndMove = false;
            if (!_switchClick)
            {
                FirstClick(point, out _switchClick);
            }
            else
            {
                _isCorrect = false;
                _endMove   = false;
                SecondClick(point, out _isCangeChecker, out _wasBeat);

                if (_isCangeChecker)
                {
                    FirstClick(point, out _switchClick);
                }

                if (_wasBeat)
                {
                    if (_desk.IsToBit(_movingChecker).Count != 0)
                    {
                        FirstClick(point, out _switchClick);
                    }
                }

                if (_isCorrect && _endMove)
                {
                    _switchClick     = false;
                    this.LightPoints = null;
                    this.EndMove     = true;
                    this.FirstPoint  = _movingChecker.Point;
                    this.SecondPoint = point;
                }
            }
        }