1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 00:33:09 +00:00

King safety: retire rook contact check

Merged from Glaurung 2.2

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2008-12-22 12:07:00 +01:00
parent 3fafc9768a
commit 54b7da120f
2 changed files with 5 additions and 25 deletions

View file

@ -64,8 +64,8 @@ namespace {
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
@ -230,8 +230,7 @@ namespace {
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;
@ -820,25 +819,8 @@ namespace {
}
}
}
// 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);
@ -1219,7 +1201,6 @@ namespace {
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");

View file

@ -97,8 +97,7 @@ namespace {
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));