Exemple #1
0
 void SetFigureAt(Square square, Figure figure)
 {
     if (square.OnBoard())
     {
         figures[square.x, square.y] = figure;
     }
 }
Exemple #2
0
 public Figure GetFigureAt(Square square)
 {
     if (square.OnBoard())
     {
         return(figures[square.x, square.y]);
     }
     return(Figure.none);
 }
Exemple #3
0
        /// <summary>
        ///
        /// индексатор))
        ///
        /// </summary>
        ///
        /// <param name="square">
        ///
        /// передаваемая клетка
        ///
        /// </param>
        ///
        /// <returns>
        ///
        /// возвращает или устанавливает фигуру
        ///
        /// </returns>
        public Figure this[Square square]
        {
            get
            {
                if (!square.OnBoard())
                {
                    return(Figure.none);
                }

                return(_figures[square.X, square.Y]);
            }
            protected set
            {
                if (square.OnBoard())
                {
                    _figures[square.X, square.Y] = value;
                }
            }
        }
Exemple #4
0
        private bool CanStraightMove()
        {
            Square at = fm.from;

            do
            {
                at = new Square(at.x + fm.SignX, at.y + fm.SignY);
                if (at == fm.to)
                {
                    return(true);
                }
            } while (at.OnBoard() &&
                     board.GetFigureAt(at) == Figure.none);
            return(false);
        }
Exemple #5
0
        /// <summary>
        ///
        /// метод который описывает алгоритм движения Фигуры Прямо
        ///
        /// </summary>
        ///
        /// <returns>
        ///
        /// возвращает логическое значение которое описывает
        /// может ли Фигура совершить ход прямо
        ///
        /// </returns>
        private bool CanStraightMove()
        {
            Square at = _figureMoving.From;

            do
            {
                at = new Square(at.X + _figureMoving.SignX,
                                at.Y + _figureMoving.SignY);

                if (at == _figureMoving.To)
                {
                    return(true);
                }
            } while (at.OnBoard() &&
                     _board.GetFigureAt(at) == Figure.none);

            return(false);
        }