mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 09:13:08 +00:00
Simplify Outposts #2176
This is a functional simplification. This is NOT the exact version that was tested. Beyond the testing, an assignment was removed and a piece changes for consistency. Instead of rewarding ANY square past an opponent pawn as an "outpost," only use squares that are protected by our pawn. I believe this is more consistent with what the chess world calls an "outpost." STC LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 23540 W: 5387 L: 5269 D: 12884 http://tests.stockfishchess.org/tests/view/5cf51e6d0ebc5925cf08b823 LTC LLR: 2.94 (-2.94,2.94) [-3.00,1.00] Total: 53085 W: 9271 L: 9204 D: 34610 http://tests.stockfishchess.org/tests/view/5cf5279e0ebc5925cf08b992 bench 3424592
This commit is contained in:
parent
434b2c72a4
commit
09caea5cab
1 changed files with 5 additions and 7 deletions
|
@ -141,7 +141,7 @@ namespace {
|
||||||
constexpr Score KnightOnQueen = S( 16, 12);
|
constexpr Score KnightOnQueen = S( 16, 12);
|
||||||
constexpr Score LongDiagonalBishop = S( 45, 0);
|
constexpr Score LongDiagonalBishop = S( 45, 0);
|
||||||
constexpr Score MinorBehindPawn = S( 18, 3);
|
constexpr Score MinorBehindPawn = S( 18, 3);
|
||||||
constexpr Score Outpost = S( 9, 3);
|
constexpr Score Outpost = S( 36, 12);
|
||||||
constexpr Score PawnlessFlank = S( 17, 95);
|
constexpr Score PawnlessFlank = S( 17, 95);
|
||||||
constexpr Score RestrictedPiece = S( 7, 7);
|
constexpr Score RestrictedPiece = S( 7, 7);
|
||||||
constexpr Score RookOnPawn = S( 10, 32);
|
constexpr Score RookOnPawn = S( 10, 32);
|
||||||
|
@ -305,14 +305,12 @@ namespace {
|
||||||
if (Pt == BISHOP || Pt == KNIGHT)
|
if (Pt == BISHOP || Pt == KNIGHT)
|
||||||
{
|
{
|
||||||
// Bonus if piece is on an outpost square or can reach one
|
// Bonus if piece is on an outpost square or can reach one
|
||||||
bb = OutpostRanks & ~pe->pawn_attacks_span(Them);
|
bb = OutpostRanks & attackedBy[Us][PAWN] & ~pe->pawn_attacks_span(Them);
|
||||||
if (bb & s)
|
if (bb & s)
|
||||||
score += Outpost * (Pt == KNIGHT ? 4 : 2)
|
score += Outpost * (Pt == KNIGHT ? 2 : 1);
|
||||||
* ((attackedBy[Us][PAWN] & s) ? 2 : 1);
|
|
||||||
|
|
||||||
else if (bb &= b & ~pos.pieces(Us))
|
else if (bb & b & ~pos.pieces(Us))
|
||||||
score += Outpost * (Pt == KNIGHT ? 2 : 1)
|
score += Outpost / (Pt == KNIGHT ? 1 : 2);
|
||||||
* ((attackedBy[Us][PAWN] & bb) ? 2 : 1);
|
|
||||||
|
|
||||||
// Knight and Bishop bonus for being right behind a pawn
|
// Knight and Bishop bonus for being right behind a pawn
|
||||||
if (shift<Down>(pos.pieces(PAWN)) & s)
|
if (shift<Down>(pos.pieces(PAWN)) & s)
|
||||||
|
|
Loading…
Add table
Reference in a new issue