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

Remove SafeCheck (#946)

It was a bit of a hack, without intrinsic value, but rather compensating for the
fact that checks were mistuned.

STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 88308 W: 15553 L: 15545 D: 57210

LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 53115 W: 6741 L: 6662 D: 39712

bench 5468995
This commit is contained in:
lucasart 2016-12-31 20:52:42 +08:00 committed by Marco Costalba
parent 8765f9ce16
commit ab4f498bbc

View file

@ -190,7 +190,6 @@ namespace {
const Score RookOnPawn = S( 8, 24);
const Score TrappedRook = S(92, 0);
const Score CloseEnemies = S( 7, 0);
const Score SafeCheck = S(20, 20);
const Score OtherCheck = S(10, 10);
const Score ThreatByHangingPawn = S(71, 61);
const Score LooseEnemies = S( 0, 25);
@ -214,10 +213,10 @@ namespace {
// Penalties for enemy's safe checks
const int QueenContactCheck = 997;
const int QueenCheck = 695;
const int RookCheck = 638;
const int BishopCheck = 538;
const int KnightCheck = 874;
const int QueenCheck = 745;
const int RookCheck = 688;
const int BishopCheck = 588;
const int KnightCheck = 924;
// eval_init() initializes king and attack bitboards for a given color
@ -447,7 +446,7 @@ namespace {
// Enemy queen safe checks
if ((b1 | b2) & ei.attackedBy[Them][QUEEN] & safe)
kingDanger += QueenCheck, score -= SafeCheck;
kingDanger += QueenCheck;
// For other pieces, also consider the square safe if attacked twice,
// and only defended by a queen.
@ -457,14 +456,14 @@ namespace {
// Enemy rooks safe and other checks
if (b1 & ei.attackedBy[Them][ROOK] & safe)
kingDanger += RookCheck, score -= SafeCheck;
kingDanger += RookCheck;
else if (b1 & ei.attackedBy[Them][ROOK] & other)
score -= OtherCheck;
// Enemy bishops safe and other checks
if (b2 & ei.attackedBy[Them][BISHOP] & safe)
kingDanger += BishopCheck, score -= SafeCheck;
kingDanger += BishopCheck;
else if (b2 & ei.attackedBy[Them][BISHOP] & other)
score -= OtherCheck;
@ -472,7 +471,7 @@ namespace {
// Enemy knights safe and other checks
b = pos.attacks_from<KNIGHT>(ksq) & ei.attackedBy[Them][KNIGHT];
if (b & safe)
kingDanger += KnightCheck, score -= SafeCheck;
kingDanger += KnightCheck;
else if (b & other)
score -= OtherCheck;