Skip to content

Commit

Permalink
A combo of 3 successful tuning patches
Browse files Browse the repository at this point in the history
Shelter Weakness by Fauzi Akram Dabat
Threats by Alain Savard
Passed Pawns by Alain Savard

STC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 51378 W: 11592 L: 11223 D: 28563
http://tests.stockfishchess.org/tests/view/5a79e2fe0ebc5902971a99d1

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,4.00]
Total: 21631 W: 3888 L: 3661 D: 14082
http://tests.stockfishchess.org/tests/view/5a7aefe80ebc5902971a9a39

Bench: 4983414
  • Loading branch information
FauziAkram authored and snicolet committed Feb 8, 2018
1 parent 69067e1 commit 917fe69
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 20 deletions.
24 changes: 12 additions & 12 deletions src/evaluate.cpp
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -185,22 +185,22 @@ namespace {
// which piece type attacks which one. Attacks on lesser pieces which are // which piece type attacks which one. Attacks on lesser pieces which are
// pawn-defended are not considered. // pawn-defended are not considered.
const Score ThreatByMinor[PIECE_TYPE_NB] = { const Score ThreatByMinor[PIECE_TYPE_NB] = {
S(0, 0), S(0, 33), S(45, 43), S(46, 47), S(72, 107), S(48, 118) S(0, 0), S(0, 31), S(39, 42), S(57, 44), S(68, 112), S(47, 120)
}; };


const Score ThreatByRook[PIECE_TYPE_NB] = { const Score ThreatByRook[PIECE_TYPE_NB] = {
S(0, 0), S(0, 25), S(40, 62), S(40, 59), S(0, 34), S(35, 48) S(0, 0), S(0, 24), S(38, 71), S(38, 61), S(0, 38), S(36, 38)
}; };


// ThreatByKing[on one/on many] contains bonuses for king attacks on // ThreatByKing[on one/on many] contains bonuses for king attacks on
// pawns or pieces which are not pawn-defended. // pawns or pieces which are not pawn-defended.
const Score ThreatByKing[] = { S(3, 62), S(9, 138) }; const Score ThreatByKing[] = { S(3, 65), S(9, 145) };


// Passed[mg/eg][Rank] contains midgame and endgame bonuses for passed pawns. // Passed[mg/eg][Rank] contains midgame and endgame bonuses for passed pawns.
// We don't use a Score because we process the two components independently. // We don't use a Score because we process the two components independently.
const Value Passed[][RANK_NB] = { const Value Passed[][RANK_NB] = {
{ V(0), V(5), V( 5), V(31), V(73), V(166), V(252) }, { V(0), V(5), V( 5), V(32), V(70), V(172), V(217) },
{ V(0), V(7), V(14), V(38), V(73), V(166), V(252) } { V(0), V(7), V(13), V(42), V(70), V(170), V(269) }
}; };


// PassedFile[File] contains a bonus according to the file of a passed pawn // PassedFile[File] contains a bonus according to the file of a passed pawn
Expand All @@ -210,7 +210,7 @@ namespace {
}; };


// Rank factor applied on some bonus for passed pawn on rank 4 or beyond // Rank factor applied on some bonus for passed pawn on rank 4 or beyond
const int RankFactor[RANK_NB] = {0, 0, 0, 2, 6, 11, 16}; const int RankFactor[RANK_NB] = {0, 0, 0, 2, 7, 12, 19};


// KingProtector[PieceType-2] contains a bonus according to distance from king // KingProtector[PieceType-2] contains a bonus according to distance from king
const Score KingProtector[] = { S(-3, -5), S(-4, -3), S(-3, 0), S(-1, 1) }; const Score KingProtector[] = { S(-3, -5), S(-4, -3), S(-3, 0), S(-1, 1) };
Expand All @@ -224,13 +224,13 @@ namespace {
const Score WeakQueen = S( 50, 10); const Score WeakQueen = S( 50, 10);
const Score CloseEnemies = S( 7, 0); const Score CloseEnemies = S( 7, 0);
const Score PawnlessFlank = S( 20, 80); const Score PawnlessFlank = S( 20, 80);
const Score ThreatBySafePawn = S(192,175); const Score ThreatBySafePawn = S(175,168);
const Score ThreatByRank = S( 16, 3); const Score ThreatByRank = S( 16, 3);
const Score Hanging = S( 48, 27); const Score Hanging = S( 52, 30);
const Score WeakUnopposedPawn = S( 5, 25); const Score WeakUnopposedPawn = S( 5, 25);
const Score ThreatByPawnPush = S( 38, 22); const Score ThreatByPawnPush = S( 47, 26);
const Score ThreatByAttackOnQueen = S( 38, 22); const Score ThreatByAttackOnQueen = S( 42, 21);
const Score HinderPassedPawn = S( 7, 0); const Score HinderPassedPawn = S( 8, 1);
const Score TrappedBishopA1H1 = S( 50, 50); const Score TrappedBishopA1H1 = S( 50, 50);


#undef S #undef S
Expand Down Expand Up @@ -690,7 +690,7 @@ namespace {


// If there aren't any enemy attacks, assign a big bonus. Otherwise // If there aren't any enemy attacks, assign a big bonus. Otherwise
// assign a smaller bonus if the block square isn't attacked. // assign a smaller bonus if the block square isn't attacked.
int k = !unsafeSquares ? 18 : !(unsafeSquares & blockSq) ? 8 : 0; int k = !unsafeSquares ? 20 : !(unsafeSquares & blockSq) ? 9 : 0;


// If the path to the queen is fully defended, assign a big bonus. // If the path to the queen is fully defended, assign a big bonus.
// Otherwise assign a smaller bonus if the block square is defended. // Otherwise assign a smaller bonus if the block square is defended.
Expand Down
16 changes: 8 additions & 8 deletions src/pawns.cpp
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -46,14 +46,14 @@ namespace {
// Weakness of our pawn shelter in front of the king by [isKingFile][distance from edge][rank]. // Weakness of our pawn shelter in front of the king by [isKingFile][distance from edge][rank].
// RANK_1 = 0 is used for files where we have no pawns or our pawn is behind our king. // RANK_1 = 0 is used for files where we have no pawns or our pawn is behind our king.
const Value ShelterWeakness[][int(FILE_NB) / 2][RANK_NB] = { const Value ShelterWeakness[][int(FILE_NB) / 2][RANK_NB] = {
{ { V( 97), V(17), V( 9), V(44), V( 84), V( 87), V( 99) }, // Not On King file { { V( 98), V(20), V(11), V(42), V( 83), V( 84), V(101) }, // Not On King file
{ V(106), V( 6), V(33), V(86), V( 87), V(104), V(112) }, { V(103), V( 8), V(33), V(86), V( 87), V(105), V(113) },
{ V(101), V( 2), V(65), V(98), V( 58), V( 89), V(115) }, { V(100), V( 2), V(65), V(95), V( 59), V( 89), V(115) },
{ V( 73), V( 7), V(54), V(73), V( 84), V( 83), V(111) } }, { V( 72), V( 6), V(52), V(74), V( 83), V( 84), V(112) } },
{ { V(104), V(20), V( 6), V(27), V( 86), V( 93), V( 82) }, // On King file { { V(105), V(19), V( 3), V(27), V( 85), V( 93), V( 84) }, // On King file
{ V(123), V( 9), V(34), V(96), V(112), V( 88), V( 75) }, { V(121), V( 7), V(33), V(95), V(112), V( 86), V( 72) },
{ V(120), V(25), V(65), V(91), V( 66), V( 78), V(117) }, { V(121), V(26), V(65), V(90), V( 65), V( 76), V(117) },
{ V( 81), V( 2), V(47), V(63), V( 94), V( 93), V(104) } } { V( 79), V( 0), V(45), V(65), V( 94), V( 92), V(105) } }
}; };


// Danger of enemy pawns moving toward our king by [type][distance from edge][rank]. // Danger of enemy pawns moving toward our king by [type][distance from edge][rank].
Expand Down

1 comment on commit 917fe69

@snicolet
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests in fishtest should be against the master branch, this is much simpler for everybody.

Please sign in to comment.