void SetFigureAt(Square square, Figure figure) { if (square.OnBoard()) { figures[square.x, square.y] = figure; } }
public Figure GetFigureAt(Square square) { if (square.OnBoard()) { return(figures[square.x, square.y]); } return(Figure.none); }
/// <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; } } }
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); }
/// <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); }