Exemplo n.º 1
0
 public IEnumerable<BoardCoordinate> GetMovesFrom(BoardCoordinate originCoordinate)
 {
     var piece = GetPiece(originCoordinate);
     var checker = new CastlingStatusChecker(this);
     var castlingMoves = checker.GetCastlingMovesFor(originCoordinate).ToList();
     var allPossibleMoves = piece.GetMovesFrom(originCoordinate).Union(castlingMoves);
     return allPossibleMoves.Where(move => IsMoveLegal(originCoordinate, move));
 }
Exemplo n.º 2
0
        public IEnumerable <BoardCoordinate> GetMovesFrom(BoardCoordinate originCoordinate)
        {
            var piece            = GetPiece(originCoordinate);
            var checker          = new CastlingStatusChecker(this);
            var castlingMoves    = checker.GetCastlingMovesFor(originCoordinate).ToList();
            var allPossibleMoves = piece.GetMovesFrom(originCoordinate).Union(castlingMoves);

            return(allPossibleMoves.Where(move => IsMoveLegal(originCoordinate, move) && !IsMoveThreatenedKing(piece, move)));
        }