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
Expand Up @@ -185,22 +185,22 @@ namespace {
// which piece type attacks which one. Attacks on lesser pieces which are
// pawn-defended are not considered.
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] = {
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
// 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.
// We don't use a Score because we process the two components independently.
const Value Passed[][RANK_NB] = {
{ V(0), V(5), V( 5), V(31), V(73), V(166), V(252) },
{ V(0), V(7), V(14), V(38), 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(13), V(42), V(70), V(170), V(269) }
};

// 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
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
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 CloseEnemies = S( 7, 0);
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 Hanging = S( 48, 27);
const Score Hanging = S( 52, 30);
const Score WeakUnopposedPawn = S( 5, 25);
const Score ThreatByPawnPush = S( 38, 22);
const Score ThreatByAttackOnQueen = S( 38, 22);
const Score HinderPassedPawn = S( 7, 0);
const Score ThreatByPawnPush = S( 47, 26);
const Score ThreatByAttackOnQueen = S( 42, 21);
const Score HinderPassedPawn = S( 8, 1);
const Score TrappedBishopA1H1 = S( 50, 50);

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

// If there aren't any enemy attacks, assign a big bonus. Otherwise
// 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.
// Otherwise assign a smaller bonus if the block square is defended.
Expand Down
16 changes: 8 additions & 8 deletions src/pawns.cpp
Expand Up @@ -46,14 +46,14 @@ namespace {
// 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.
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(106), V( 6), V(33), V(86), V( 87), V(104), V(112) },
{ V(101), V( 2), V(65), V(98), V( 58), V( 89), V(115) },
{ V( 73), V( 7), V(54), V(73), V( 84), V( 83), V(111) } },
{ { V(104), V(20), V( 6), V(27), V( 86), V( 93), V( 82) }, // On King file
{ V(123), V( 9), V(34), V(96), V(112), V( 88), V( 75) },
{ V(120), V(25), V(65), V(91), V( 66), V( 78), V(117) },
{ V( 81), V( 2), V(47), V(63), V( 94), V( 93), V(104) } }
{ { V( 98), V(20), V(11), V(42), V( 83), V( 84), V(101) }, // Not On King file
{ V(103), V( 8), V(33), V(86), V( 87), V(105), V(113) },
{ V(100), V( 2), V(65), V(95), V( 59), V( 89), V(115) },
{ V( 72), V( 6), V(52), V(74), V( 83), V( 84), V(112) } },
{ { V(105), V(19), V( 3), V(27), V( 85), V( 93), V( 84) }, // On King file
{ V(121), V( 7), V(33), V(95), V(112), V( 86), V( 72) },
{ V(121), V(26), V(65), V(90), V( 65), V( 76), V(117) },
{ 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].
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.