public List <string> GetValidCaptures() { var figuresOnSquares = Board.GetFigureOnSquares(); var squares = Square.GetBoardSquares(); var validMoves = new List <string>(); var opponentCollor = MoveColor == Color.black ? Color.white : Color.black; foreach (var figuresOnSquare in figuresOnSquares) { foreach (var to in squares) { foreach (Figure promotion in figuresOnSquare.Figure.YieldPromotions(to)) { FigureMoving fm = new FigureMoving(figuresOnSquare, to, promotion); if (IsValidMove(fm) && Board.GetFigureAt(to).GetFigureColor() == opponentCollor) { validMoves.Add(fm.ToString()); } } } } return(validMoves); }
public IEnumerable <string> YieldValidMoves() { foreach (FigureOnSquare fs in board.YieldMyFigureOnSquares()) { foreach (Square to in Square.YieldBoardSquares()) { foreach (Figure promotion in fs.figure.YieldPromotions(to)) { FigureMoving fm = new FigureMoving(fs, to, promotion); if (moves.CanMove(fm)) { if (!board.IsCheckAfter(fm)) { yield return(fm.ToString()); } } } } } }
/// <summary> /// /// перебор всех фигур текущего игрока которые могут совершить ход на игровой доске /// /// </summary> /// /// <returns> /// /// возвращает все фигуры которые могут совершть ход /// /// </returns> public IEnumerable <string> YieldValidMoves() { foreach (FigureOnSquare figureOnSquare in _board.YieldFiguresOnSquare()) { foreach (Square to in Square.YieldBoardSquare()) { foreach (Figure promotion in figureOnSquare.FigurE.YeldPromotions(to)) { FigureMoving figureMoving = new FigureMoving(figureOnSquare, to, promotion); if (_moves.CanMove(figureMoving)) { if (!_board.IsCheckAfter(figureMoving)) { yield return(figureMoving.ToString()); } } } } } }
public IEnumerable <string> YieldValidMoves() { var figuresOnSquares = Board.GetFigureOnSquares(); var squares = Square.GetBoardSquares(); foreach (var figuresOnSquare in figuresOnSquares) { foreach (var to in squares) { foreach (Figure promotion in figuresOnSquare.Figure.YieldPromotions(to)) { FigureMoving fm = new FigureMoving(figuresOnSquare, to, promotion); if (IsValidMove(fm)) { yield return(fm.ToString()); } } } } }
public List <string> GetValidMoves() { var figuresOnSquares = Board.GetFigureOnSquares(); var squares = Square.GetBoardSquares(); var validMoves = new List <string>(); foreach (var figuresOnSquare in figuresOnSquares) { foreach (var to in squares) { foreach (Figure promotion in figuresOnSquare.Figure.YieldPromotions(to)) { FigureMoving fm = new FigureMoving(figuresOnSquare, to, promotion); if (IsValidMove(fm)) { validMoves.Add(fm.ToString()); } } } } return(validMoves); }