From 54b7da120f6d88f66c22598fb2d1df29e9a17a9c Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Mon, 22 Dec 2008 12:07:00 +0100 Subject: [PATCH] King safety: retire rook contact check Merged from Glaurung 2.2 Signed-off-by: Marco Costalba --- src/evaluate.cpp | 29 +++++------------------------ src/ucioption.cpp | 3 +-- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 263a9909..cf164cda 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -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(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"); diff --git a/src/ucioption.cpp b/src/ucioption.cpp index c777383e..a58ac1ae 100644 --- a/src/ucioption.cpp +++ b/src/ucioption.cpp @@ -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)); -- 2.39.2