mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
Bonus for pawn scrifice which create passed pawn
STC: LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 16752 W: 3141 L: 2944 D: 10667 LTC: LLR: 3.34 (-2.94,2.94) [0.00,5.00] Total: 33928 W: 4544 L: 4300 D: 25084 Bench: 5639223 Closes #1092
This commit is contained in:
parent
25296547d0
commit
69ec09bd4b
2 changed files with 10 additions and 3 deletions
|
@ -618,7 +618,7 @@ namespace {
|
||||||
{
|
{
|
||||||
Square s = pop_lsb(&b);
|
Square s = pop_lsb(&b);
|
||||||
|
|
||||||
assert(!(pos.pieces(PAWN) & forward_bb(Us, s)));
|
assert(!(pos.pieces(Them, PAWN) & forward_bb(Us, s + pawn_push(Us))));
|
||||||
|
|
||||||
bb = forward_bb(Us, s) & (ei.attackedBy[Them][ALL_PIECES] | pos.pieces(Them));
|
bb = forward_bb(Us, s) & (ei.attackedBy[Them][ALL_PIECES] | pos.pieces(Them));
|
||||||
score -= HinderPassedPawn * popcount(bb);
|
score -= HinderPassedPawn * popcount(bb);
|
||||||
|
@ -675,8 +675,8 @@ namespace {
|
||||||
} // rr != 0
|
} // rr != 0
|
||||||
|
|
||||||
// Scale down bonus for candidate passers which need more than one
|
// Scale down bonus for candidate passers which need more than one
|
||||||
// pawn push to become passed.
|
// pawn push to become passed or have a pawn in front of them.
|
||||||
if (!pos.pawn_passed(Us, s + pawn_push(Us)))
|
if (!pos.pawn_passed(Us, s + pawn_push(Us)) || (pos.pieces(PAWN) & forward_bb(Us, s)))
|
||||||
mbonus /= 2, ebonus /= 2;
|
mbonus /= 2, ebonus /= 2;
|
||||||
|
|
||||||
score += make_score(mbonus, ebonus) + PassedFile[file_of(s)];
|
score += make_score(mbonus, ebonus) + PassedFile[file_of(s)];
|
||||||
|
|
|
@ -163,6 +163,13 @@ namespace {
|
||||||
&& popcount(phalanx) >= popcount(leverPush))
|
&& popcount(phalanx) >= popcount(leverPush))
|
||||||
e->passedPawns[Us] |= s;
|
e->passedPawns[Us] |= s;
|
||||||
|
|
||||||
|
else if ( stoppers == SquareBB[s + Up]
|
||||||
|
&& relative_rank(Us, s) >= RANK_5
|
||||||
|
&& (b = (shift<Up>(supported) & ~theirPawns)))
|
||||||
|
while(b)
|
||||||
|
if(!more_than_one(theirPawns & PawnAttacks[Us][pop_lsb(&b)]))
|
||||||
|
e->passedPawns[Us] |= s;
|
||||||
|
|
||||||
// Score this pawn
|
// Score this pawn
|
||||||
if (!neighbours)
|
if (!neighbours)
|
||||||
score -= Isolated[opposed];
|
score -= Isolated[opposed];
|
||||||
|
|
Loading…
Add table
Reference in a new issue