コード例 #1
0
ファイル: Board.cs プロジェクト: PeterChernykh/PetProjectRepo
 public IEnumerable <FigureOnSquare> YieldFigures()
 {
     foreach (Square square in Square.YieldSquares())
     {
         if (GetFigureAt(square).GetColor() == MoveColor)
         {
             yield return(new FigureOnSquare(GetFigureAt(square), square));
         }
     }
 }
コード例 #2
0
ファイル: Board.cs プロジェクト: PeterChernykh/PetProjectRepo
        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);
        }
コード例 #3
0
ファイル: Chess.cs プロジェクト: PeterChernykh/PetProjectRepo
        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);
                        }
                    }
                }
            }
        }