ChessDotNet.ChessGame.SetPieceAt C# (CSharp) Method

SetPieceAt() protected method

protected SetPieceAt ( File file, int rank, Piece piece ) : void
file File
rank int
piece Piece
return void
        protected virtual void SetPieceAt(File file, int rank, Piece piece)
        {
            Board[8 - rank][(int)file] = piece;
        }

Usage Example

Example #1
0
        public virtual bool WouldBeInCheckAfter(Move move, Player player)
        {
            ChessUtilities.ThrowIfNull(move, "move");
            GameCreationData gcd = new GameCreationData();

            gcd.Board = Board;
            gcd.CanWhiteCastleKingSide  = CanWhiteCastleKingSide;
            gcd.CanWhiteCastleQueenSide = CanWhiteCastleQueenSide;
            gcd.CanBlackCastleKingSide  = CanBlackCastleKingSide;
            gcd.CanBlackCastleQueenSide = CanBlackCastleQueenSide;
            gcd.EnPassant = null;
            if (_moves.Count > 0)
            {
                DetailedMove last = _moves.Last();
                if (last.Piece is Pawn && new PositionDistance(last.OriginalPosition, last.NewPosition).DistanceY == 2)
                {
                    gcd.EnPassant = new Position(last.NewPosition.File, last.Player == Player.White ? 3 : 6);
                }
            }
            gcd.HalfMoveClock  = i_halfMoveClock;
            gcd.FullMoveNumber = i_fullMoveNumber;
            ChessGame copy = new ChessGame(gcd);
            Piece     p    = copy.GetPieceAt(move.OriginalPosition);

            copy.SetPieceAt(move.OriginalPosition.File, move.OriginalPosition.Rank, null);
            copy.SetPieceAt(move.NewPosition.File, move.NewPosition.Rank, p);
            return(copy.IsInCheck(player));
        }