const int WeightPawnStructureEndgameInternal = 0x100;
const int WeightPassedPawnsMidgameInternal = 0x100;
const int WeightPassedPawnsEndgameInternal = 0x100;
- const int WeightKingSafetyInternal = 0x100;
- const int WeightKingOppSafetyInternal = 0x100;
+ const int WeightKingSafetyInternal = 0x110;
+ const int WeightKingOppSafetyInternal = 0x110;
const int WeightSpaceInternal = 0x30;
// Visually better to define tables constants
const int KnightAttackWeight = 2;
// Bonuses for safe checks for each piece type.
- int QueenContactCheckBonus = 4;
- int RookContactCheckBonus = 2;
+ int QueenContactCheckBonus = 3;
int QueenCheckBonus = 2;
int RookCheckBonus = 1;
int BishopCheckBonus = 1;
}
}
}
- // Analyse safe rook contact checks:
- if (RookContactCheckBonus)
- {
- b = undefended & ei.attacked_by(them, ROOK) & ~p.pieces_of_color(them);
- if (b)
- {
- Bitboard attackedByOthers =
- ei.attacked_by(them, PAWN) | ei.attacked_by(them, KNIGHT)
- | ei.attacked_by(them, BISHOP) | ei.attacked_by(them, QUEEN);
-
- b &= attackedByOthers;
- if (b)
- {
- int count = count_1s_max_15(b);
- attackUnits += (RookContactCheckBonus * count * (sente? 2 : 1));
- }
- }
- }
- // Analyse safe distance checks:
+
+ // Analyse safe distance checks
if (QueenCheckBonus > 0 || RookCheckBonus > 0)
{
b = p.piece_attacks<ROOK>(s) & ~p.pieces_of_color(them) & ~ei.attacked_by(us);
void init_safety() {
QueenContactCheckBonus = get_option_value_int("Queen Contact Check Bonus");
- RookContactCheckBonus = get_option_value_int("Rook Contact Check Bonus");
QueenCheckBonus = get_option_value_int("Queen Check Bonus");
RookCheckBonus = get_option_value_int("Rook Check Bonus");
BishopCheckBonus = get_option_value_int("Bishop Check Bonus");
o.push_back(Option("King Safety X Intercept", 0, 0, 20));
o.push_back(Option("King Safety Max Slope", 30, 10, 100));
o.push_back(Option("King Safety Max Value", 500, 100, 1000));
- o.push_back(Option("Queen Contact Check Bonus", 4, 0, 8));
- o.push_back(Option("Rook Contact Check Bonus", 2, 0, 4));
+ o.push_back(Option("Queen Contact Check Bonus", 3, 0, 8));
o.push_back(Option("Queen Check Bonus", 2, 0, 4));
o.push_back(Option("Rook Check Bonus", 1, 0, 4));
o.push_back(Option("Bishop Check Bonus", 1, 0, 4));