mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 09:13:08 +00:00
Penalize undefended minors
Even if not under attack. This seems to be good especially on openings. After 12112 games at 10"+0.05 Mod vs Orig 2175 - 1997 - 7940 ELO +5 (+- 3.7) [Patch series from Gary, little edited by me] Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
3b7dbc4f6d
commit
3c6a4bfbed
1 changed files with 8 additions and 1 deletions
|
@ -679,12 +679,19 @@ Value do_evaluate(const Position& pos, Value& margin) {
|
||||||
Bitboard b;
|
Bitboard b;
|
||||||
Score score = SCORE_ZERO;
|
Score score = SCORE_ZERO;
|
||||||
|
|
||||||
|
// Undefended minors get penalized even if not under attack
|
||||||
|
Bitboard undefended = pos.pieces(Them)
|
||||||
|
& (pos.pieces(BISHOP) | pos.pieces(KNIGHT))
|
||||||
|
& ~ei.attackedBy[Them][0];
|
||||||
|
if (undefended)
|
||||||
|
score += make_score(25, 10) * popcount<Max15>(undefended);
|
||||||
|
|
||||||
// Enemy pieces not defended by a pawn and under our attack
|
// Enemy pieces not defended by a pawn and under our attack
|
||||||
Bitboard weakEnemies = pos.pieces(Them)
|
Bitboard weakEnemies = pos.pieces(Them)
|
||||||
& ~ei.attackedBy[Them][PAWN]
|
& ~ei.attackedBy[Them][PAWN]
|
||||||
& ei.attackedBy[Us][0];
|
& ei.attackedBy[Us][0];
|
||||||
if (!weakEnemies)
|
if (!weakEnemies)
|
||||||
return SCORE_ZERO;
|
return score;
|
||||||
|
|
||||||
// Add bonus according to type of attacked enemy piece and to the
|
// Add bonus according to type of attacked enemy piece and to the
|
||||||
// type of attacking piece, from knights to queens. Kings are not
|
// type of attacking piece, from knights to queens. Kings are not
|
||||||
|
|
Loading…
Add table
Reference in a new issue