public IEnumerable <FigureOnSquare> YieldFigures() { foreach (Square square in Square.YieldSquares()) { if (GetFigureAt(square).GetColor() == MoveColor) { yield return(new FigureOnSquare(GetFigureAt(square), square)); } } }
private Square FindOpponentKing() { Figure oppKing = MoveColor == Color.black ? Figure.WhiteKing : Figure.BlackKing; foreach (Square square in Square.YieldSquares()) { if (GetFigureAt(square) == oppKing) { return(square); } } return(Square.none); }
void FindAllMoves() { allPossibleMoves = new List <FigureMoving>(); foreach (FigureOnSquare fs in board.YieldFigures()) { foreach (Square to in Square.YieldSquares()) { FigureMoving fm = new FigureMoving(to, fs); if (moves.CanMove(fm)) { if (!board.IsCheckAfterMove(fm)) { allPossibleMoves.Add(fm); } } } } }