1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 16:53:09 +00:00
BadFish/src
Lolligerhans d7a2d5a445 Remove candidate passers w/o feasible lever
+-------+
| o . . | o  their pawns
| x . . | x  our pawns
| . x . | <- Can sacrifice to create passer?
+-------+
   yes

    1         2         3         4         5
+-------+ +-------+ +-------+ +-------+ +-------+
| o . . | | o r . | | o r . | | o . b | | o . b |  lowercase: theirs
| x b . | | x . . | | x . R | | x . R | | x . . |  uppercase: ours
| . x . | | . x . | | . x . | | . x . | | . x B |
+-------+ +-------+ +-------+ +-------+ +-------+
   no        no        yes       no        yes

The value of our top pawn depends on our ability to advance our bottom
pawn, levering their blocker. Previously, this pawn configuration was
always scored as passer (although a blocked one).

Add requirements for the square s above our (possibly) sacrificed pawn:
- s must not be occupied by them (1).
- If they attack s (2), we must attack s (3).
- If they attack s with a minor (4), we must attack s with a minor (5).
The attack from their blocker is ignored because it is inherent in the
structure; we are ok with sacrificing our bottom pawn.

LTC
LLR: 2.95 (-2.94,2.94) {0.25,1.75}
Total: 37030 W: 4962 L: 4682 D: 27386
Ptnml(0-2): 266, 3445, 10863, 3625, 316
https://tests.stockfishchess.org/tests/view/5e92a2b4be6ede5b954bf239

STC
LLR: 2.94 (-2.94,2.94) {-0.50,1.50}
Total: 40874 W: 8066 L: 7813 D: 24995
Ptnml(0-2): 706, 4753, 9324, 4890, 764
https://tests.stockfishchess.org/tests/view/5e922199af0a0143109dc90e

closes https://github.com/official-stockfish/Stockfish/pull/2624

Bench: 4828294
2020-04-13 08:50:25 +02:00
..
syzygy Small cleanups 2020-04-12 20:30:08 +02:00
benchmark.cpp Equations for edges and corners. 2020-03-09 22:16:26 +01:00
bitbase.cpp Small cleanups. 2020-02-05 15:32:29 +01:00
bitboard.cpp Small cleanups 2020-04-12 20:30:08 +02:00
bitboard.h Small cleanups 2020-04-12 20:30:08 +02:00
endgame.cpp remove KNPK endgame code 2020-04-05 08:35:31 +02:00
endgame.h remove KNPK endgame code 2020-04-05 08:35:31 +02:00
evaluate.cpp Remove candidate passers w/o feasible lever 2020-04-13 08:50:25 +02:00
evaluate.h Small cleanups 2020-03-01 09:31:58 +01:00
main.cpp Small cleanups. 2020-02-05 15:32:29 +01:00
Makefile Small cleanups 2020-03-01 09:31:58 +01:00
material.cpp Small cleanups 2020-03-30 22:46:07 +02:00
material.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
misc.cpp Small cleanups. 2020-02-05 15:32:29 +01:00
misc.h Fix ambiguity between clamp implementations 2020-03-07 11:14:27 +01:00
movegen.cpp Small cleanups 2020-04-12 20:30:08 +02:00
movegen.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
movepick.cpp Always remember the ttMove 2020-04-12 20:34:50 +02:00
movepick.h Improve move order near the root 2020-02-22 21:32:32 +01:00
pawns.cpp Remove candidate passers w/o feasible lever 2020-04-13 08:50:25 +02:00
pawns.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
position.cpp Small cleanups 2020-03-30 22:46:07 +02:00
position.h Limit array access in Position 2020-04-02 14:40:03 +02:00
psqt.cpp Small cleanups 2020-04-12 20:30:08 +02:00
search.cpp Extend irreversible moves 2020-04-12 20:38:47 +02:00
search.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
thread.cpp Small cleanups 2020-04-12 20:30:08 +02:00
thread.h Small cleanups 2020-04-12 20:30:08 +02:00
thread_win32_osx.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
timeman.cpp Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
timeman.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
tt.cpp Small cleanups. 2020-02-05 15:32:29 +01:00
tt.h Small cleanups 2020-03-14 17:04:50 +01:00
types.h Small cleanups 2020-04-12 20:30:08 +02:00
uci.cpp Small cleanups 2020-03-30 22:46:07 +02:00
uci.h Update lists of authors and contributors 2020-01-09 01:43:47 +01:00
ucioption.cpp Update lists of authors and contributors 2020-01-09 01:43:47 +01:00