예제 #1
0
        // ReSharper disable InvertIf
        private static bool PromotePawns(Board board, Piece piece, byte dstPosition, ChessPieceType promoteToPiece)
        {
            if (piece.PieceType == ChessPieceType.Pawn)
            {
                if (dstPosition < 8)
                {
                    board.Squares[dstPosition].Piece.PieceType        = promoteToPiece;
                    board.Squares[dstPosition].Piece.PieceValue       = Piece.CalculatePieceValue(promoteToPiece);
                    board.Squares[dstPosition].Piece.PieceActionValue =
                        Piece.CalculatePieceActionValue(promoteToPiece);
                    return(true);
                }

                if (dstPosition > 55)
                {
                    board.Squares[dstPosition].Piece.PieceType        = promoteToPiece;
                    board.Squares[dstPosition].Piece.PieceValue       = Piece.CalculatePieceValue(promoteToPiece);
                    board.Squares[dstPosition].Piece.PieceActionValue =
                        Piece.CalculatePieceActionValue(promoteToPiece);
                    return(true);
                }
            }

            return(false);
        }