Change evaluation score to a centi-pawn based integer type
This commit is contained in:
@@ -20,12 +20,12 @@ static enum game_progress endgameness(struct pos const* pos)
|
||||
/* piece_value is already defined similarly elsewhere, but this one should
|
||||
* remain independent of minor tweaks in the global table */
|
||||
static int const piece_value[PIECE_COUNT] = {
|
||||
[PIECE_KING] = 0,
|
||||
[PIECE_PAWN] = 1,
|
||||
[PIECE_KING] = 0,
|
||||
[PIECE_PAWN] = 1,
|
||||
[PIECE_BISHOP] = 3,
|
||||
[PIECE_KNIGHT] = 3,
|
||||
[PIECE_ROOK] = 5,
|
||||
[PIECE_QUEEN] = 9,
|
||||
[PIECE_ROOK] = 5,
|
||||
[PIECE_QUEEN] = 9,
|
||||
};
|
||||
|
||||
int npm = 0; /* non-pawn material */
|
||||
@@ -314,25 +314,25 @@ BITBOARD( \
|
||||
|
||||
#define EARLY_POSITIONAL_BONUS_0 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.02f, BOARD_CENTER_4X4) \
|
||||
X(PIECE_KNIGHT, 0.05f, BOARD_CENTER_4X4) \
|
||||
X(PIECE_BISHOP, 0.05f, BOARD_CENTER_6X6 & (DIAGONAL_A1_H8 | DIAGONAL_A8_H1)) \
|
||||
X(PIECE_KING, 0.15f, REL_KING_CASTLE_KINGSIDE) \
|
||||
X(PIECE_QUEEN, -0.15f, RANK_MASK_3 | RANK_MASK_4 | RANK_MASK_5 | RANK_MASK_6) \
|
||||
X(PIECE_ROOK, 0.10f, FILE_MASK_D | FILE_MASK_E) \
|
||||
X(PIECE_PAWN, 2, BOARD_CENTER_4X4) \
|
||||
X(PIECE_KNIGHT, 5, BOARD_CENTER_4X4) \
|
||||
X(PIECE_BISHOP, 5, BOARD_CENTER_6X6 & (DIAGONAL_A1_H8 | DIAGONAL_A8_H1)) \
|
||||
X(PIECE_KING, 15, REL_KING_CASTLE_KINGSIDE) \
|
||||
X(PIECE_QUEEN, -15, RANK_MASK_3 | RANK_MASK_4 | RANK_MASK_5 | RANK_MASK_6) \
|
||||
X(PIECE_ROOK, 10, FILE_MASK_D | FILE_MASK_E) \
|
||||
/**/
|
||||
|
||||
#define EARLY_POSITIONAL_BONUS_1 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.02f, BOARD_CENTER_2X2) \
|
||||
X(PIECE_BISHOP, 0.05f, REL_BISHOP_KING_ATTACK) \
|
||||
X(PIECE_PAWN, 2, BOARD_CENTER_2X2) \
|
||||
X(PIECE_BISHOP, 5, REL_BISHOP_KING_ATTACK) \
|
||||
/**/
|
||||
|
||||
#define EARLY_POSITIONAL_BONUS_2 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, -0.18f, ~REL_EARLY_PAWN_STRUCTURE) \
|
||||
X(PIECE_KNIGHT, -0.10f, REL_UNDEVELOPED_KNIGHTS) \
|
||||
X(PIECE_BISHOP, -0.10f, REL_UNDEVELOPED_BISHOPS) \
|
||||
X(PIECE_PAWN, -18, ~REL_EARLY_PAWN_STRUCTURE) \
|
||||
X(PIECE_KNIGHT, -10, REL_UNDEVELOPED_KNIGHTS) \
|
||||
X(PIECE_BISHOP, -10, REL_UNDEVELOPED_BISHOPS) \
|
||||
/**/
|
||||
|
||||
#define EARLY_POSITIONAL_BONUS_3 \
|
||||
@@ -345,58 +345,58 @@ BITBOARD( \
|
||||
|
||||
#define MIDDLE_POSITIONAL_BONUS_0 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.02f, BOARD_CENTER_4X4) \
|
||||
X(PIECE_KNIGHT, 0.05f, BOARD_CENTER_4X4) \
|
||||
X(PIECE_BISHOP, 0.05f, BOARD_CENTER_6X6 & (DIAGONAL_A1_H8 | DIAGONAL_A8_H1)) \
|
||||
X(PIECE_KING, 0.15f, REL_KING_CASTLE_KINGSIDE) \
|
||||
X(PIECE_PAWN, 2, BOARD_CENTER_4X4) \
|
||||
X(PIECE_KNIGHT, 5, BOARD_CENTER_4X4) \
|
||||
X(PIECE_BISHOP, 5, BOARD_CENTER_6X6 & (DIAGONAL_A1_H8 | DIAGONAL_A8_H1)) \
|
||||
X(PIECE_KING, 15, REL_KING_CASTLE_KINGSIDE) \
|
||||
/**/
|
||||
|
||||
#define MIDDLE_POSITIONAL_BONUS_1 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.02f, BOARD_CENTER_2X2) \
|
||||
X(PIECE_BISHOP, 0.07f, REL_BISHOP_KING_ATTACK) \
|
||||
X(PIECE_QUEEN, 0.07f, REL_BISHOP_KING_ATTACK) \
|
||||
X(PIECE_PAWN, 2, BOARD_CENTER_2X2) \
|
||||
X(PIECE_BISHOP, 7, REL_BISHOP_KING_ATTACK) \
|
||||
X(PIECE_QUEEN, 7, REL_BISHOP_KING_ATTACK) \
|
||||
/**/
|
||||
|
||||
#define MIDDLE_POSITIONAL_BONUS_2 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.02f, REL_PAWN_KINGSIDE) \
|
||||
X(PIECE_PAWN, 2, REL_PAWN_KINGSIDE) \
|
||||
/**/
|
||||
|
||||
#define MIDDLE_POSITIONAL_BONUS_3 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_BISHOP, 0.05f, BOARD_CENTER_6X6) \
|
||||
X(PIECE_KNIGHT, 0.05f, BOARD_CENTER_6X6) \
|
||||
X(PIECE_BISHOP, 5, BOARD_CENTER_6X6) \
|
||||
X(PIECE_KNIGHT, 5, BOARD_CENTER_6X6) \
|
||||
/**/
|
||||
|
||||
/* ------------------------------- end game -------------------------------- */
|
||||
|
||||
#define LATE_POSITIONAL_BONUS_0 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.30f, REL_RANK_7 | REL_RANK_6 | REL_RANK_5) \
|
||||
X(PIECE_KING, 0.10f, BOARD_CENTER_6X6) \
|
||||
X(PIECE_PAWN, 30, REL_RANK_7 | REL_RANK_6 | REL_RANK_5) \
|
||||
X(PIECE_KING, 10, BOARD_CENTER_6X6) \
|
||||
/**/
|
||||
|
||||
#define LATE_POSITIONAL_BONUS_1 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.30f, REL_RANK_7 | REL_RANK_6) \
|
||||
X(PIECE_KING, 0.10f, BOARD_CENTER_4X4) \
|
||||
X(PIECE_PAWN, 30, REL_RANK_7 | REL_RANK_6) \
|
||||
X(PIECE_KING, 10, BOARD_CENTER_4X4) \
|
||||
/**/
|
||||
|
||||
#define LATE_POSITIONAL_BONUS_2 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_PAWN, 0.70f, REL_RANK_7) \
|
||||
X(PIECE_KING, 0.10f, BOARD_CENTER_2X2) \
|
||||
X(PIECE_PAWN, 70, REL_RANK_7) \
|
||||
X(PIECE_KING, 10, BOARD_CENTER_2X2) \
|
||||
/**/
|
||||
|
||||
#define LATE_POSITIONAL_BONUS_3 \
|
||||
/* piece bonus area*/ \
|
||||
X(PIECE_KING, -0.50f, ~BOARD_CENTER_6X6) \
|
||||
X(PIECE_KING, -50, ~BOARD_CENTER_6X6) \
|
||||
/**/
|
||||
|
||||
struct posmod {
|
||||
Bb64 const area;
|
||||
float const val;
|
||||
Score16 const val;
|
||||
};
|
||||
|
||||
static inline struct posmod positional_modifier(Side8 pl, enum game_progress st, size_t layer, Piece8 pz)
|
||||
|
||||
Reference in New Issue
Block a user