From 540b49a1522440597501aa94618cf391cef08feb Mon Sep 17 00:00:00 2001 From: Alain SAVARD Date: Tue, 6 Oct 2015 03:32:26 +0100 Subject: [PATCH 1/1] Remove queen threat evaluation Threats by queen seem to be worthless. STC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 13627 W: 2607 L: 2473 D: 8547 LTC: LLR: 2.96 (-2.94,2.94) [-3.00,1.00] Total: 19146 W: 2950 L: 2827 D: 13369 Bench: 8222484 Resolves #439 --- src/evaluate.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/evaluate.cpp b/src/evaluate.cpp index f66ba58c..c83ec546 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -148,13 +148,13 @@ namespace { { S(18, 5), S(27, 8) } // Bishops }; - // Threat[defended/weak][minor/major attacking][attacked PieceType] contains + // Threat[defended/weak][minor/rook attacking][attacked PieceType] contains // bonuses according to which piece type attacks which one. const Score Threat[][2][PIECE_TYPE_NB] = { - { { S(0, 0), S( 0, 0), S(19, 37), S(24, 37), S(44, 97), S(35,106) }, // Defended Minor - { S(0, 0), S( 0, 0), S( 9, 14), S( 9, 14), S( 7, 14), S(24, 48) } }, // Defended Major - { { S(0, 0), S( 0,32), S(33, 41), S(31, 50), S(41,100), S(35,104) }, // Weak Minor - { S(0, 0), S( 0,27), S(26, 57), S(26, 57), S(0 , 43), S(23, 51) } } // Weak Major + { { S(0, 0), S( 0, 0), S(19, 37), S(24, 37), S(44, 97), S(35,106) }, // Minor on Defended + { S(0, 0), S( 0, 0), S( 9, 14), S( 9, 14), S( 7, 14), S(24, 48) } }, // Rook on Defended + { { S(0, 0), S( 0,32), S(33, 41), S(31, 50), S(41,100), S(35,104) }, // Minor on Weak + { S(0, 0), S( 0,27), S(26, 57), S(26, 57), S(0 , 43), S(23, 51) } } // Rook on Weak }; // ThreatenedByPawn[PieceType] contains a penalty according to which piece @@ -502,7 +502,7 @@ namespace { const Bitboard TRank7BB = (Us == WHITE ? Rank7BB : Rank2BB); enum { Defended, Weak }; - enum { Minor, Major }; + enum { Minor, Rook }; Bitboard b, weak, defended, safeThreats; Score score = SCORE_ZERO; @@ -534,9 +534,9 @@ namespace { while (b) score += Threat[Defended][Minor][type_of(pos.piece_on(pop_lsb(&b)))]; - b = defended & (ei.attackedBy[Us][ROOK]); + b = defended & ei.attackedBy[Us][ROOK]; while (b) - score += Threat[Defended][Major][type_of(pos.piece_on(pop_lsb(&b)))]; + score += Threat[Defended][Rook][type_of(pos.piece_on(pop_lsb(&b)))]; } // Enemies not defended by a pawn and under our attack @@ -551,9 +551,9 @@ namespace { while (b) score += Threat[Weak][Minor][type_of(pos.piece_on(pop_lsb(&b)))]; - b = weak & (ei.attackedBy[Us][ROOK] | ei.attackedBy[Us][QUEEN]); + b = weak & ei.attackedBy[Us][ROOK]; while (b) - score += Threat[Weak][Major][type_of(pos.piece_on(pop_lsb(&b)))]; + score += Threat[Weak][Rook][type_of(pos.piece_on(pop_lsb(&b)))]; b = weak & ~ei.attackedBy[Them][ALL_PIECES]; if (b) -- 2.39.2