Beispiel #1
0
        public IEnumerable <Move> GenerateMoves()
        {
            King king = Side == Color.White ? WhiteKing : BlackKing;

            var moves = pieces.Cast <Piece>().Where(p => p != null && p.Color == Side)
                        .SelectMany(p => p.GenerateMoves(this)).Where(x =>
            {
                MakeMove(x);
                var result = king.From.IsAttackedSquare(this, king.OppenentColor);
                TakeBackMove(x);
                return(!result);
            });


            return(moves);
        }
Beispiel #2
0
 public IEnumerable <Piece> GetPiecesForColor(Color color)
 {
     return(Board.Cast <Piece>().Where(piece => piece != null && piece.Color == color).ToList());
 }
Beispiel #3
0
 public IEnumerator <Piece> GetEnumerator()
 {
     return(board.Cast <Piece>().Where(x => x != null).GetEnumerator());
 }
Beispiel #4
0
 public Piece[] Pieces()
 {
     return(board.Cast <Piece>().ToArray());
 }