fairystockfish.git
5 years agoSupport suicide chess
Fabian Fichter [Tue, 31 Dec 2019 12:47:18 +0000]
Support suicide chess

https://www.freechess.org/Help/HelpFiles/suicide_chess.html

5 years agoSupport nocastle chess
Fabian Fichter [Tue, 31 Dec 2019 12:29:56 +0000]
Support nocastle chess

5 years agoSupport bughouse-specific XBoard commands
Fabian Fichter [Thu, 26 Dec 2019 12:35:44 +0000]
Support bughouse-specific XBoard commands

5 years agoGeneralize sittuyin promotion
Fabian Fichter [Wed, 25 Dec 2019 11:33:00 +0000]
Generalize sittuyin promotion

No functional change.

5 years agoSupport bughouse
Fabian Fichter [Wed, 25 Dec 2019 08:42:30 +0000]
Support bughouse

Add basic support for bughouse without protocol extensions yet.

6 years agoSet variantTemplate for pocketknight
Fabian Fichter [Tue, 24 Dec 2019 13:39:22 +0000]
Set variantTemplate for pocketknight

6 years agoSend piece command in XBoard protocol
Fabian Fichter [Tue, 24 Dec 2019 13:01:42 +0000]
Send piece command in XBoard protocol

Use Betza notation to communicate piece movement options to GUI.
Improves compatibility with XBoard/WinBoard and allows to play
most variants with legality testing enabled.

Closes #56.

6 years agoAdd missing pieceToCharTable definitions
Fabian Fichter [Tue, 24 Dec 2019 12:03:26 +0000]
Add missing pieceToCharTable definitions

Fixes XBoard/WinBoard compatibility for placement and sittuyin.

6 years agoTweak piece values for drop variants
Fabian Fichter [Mon, 23 Dec 2019 12:13:27 +0000]
Tweak piece values for drop variants

and variants where check is prohibited.

crazyhouse STC (yellow)
LLR: -2.97 (-2.94,2.94) [0.00,10.00]
Total: 16416 W: 8023 L: 7887 D: 506
http://www.variantfishtest.org:6543/tests/view/5dfe8f2f6e23db1ffe4a28ee

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 2507 W: 1275 L: 1140 D: 92
http://www.variantfishtest.org:6543/tests/view/5dff13b16e23db1ffe4a28f3

racingkings STC
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 4507 W: 1524 L: 1501 D: 1482
http://www.variantfishtest.org:6543/tests/view/5dffdcfe6e23db1ffe4a28fb

racingkings LTC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 1150 W: 362 L: 320 D: 468
http://www.variantfishtest.org:6543/tests/view/5dffdcf26e23db1ffe4a28f9

6 years agoTweak piece value of Ai-Wok
Fabian Fichter [Mon, 23 Dec 2019 12:11:24 +0000]
Tweak piece value of Ai-Wok

ai-wok STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 12183 W: 4264 L: 4029 D: 3890
http://www.variantfishtest.org:6543/tests/view/5dcc4d6e6e23db1ffe4a2731

ai-wok LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 27865 W: 9319 L: 8890 D: 9656
http://www.variantfishtest.org:6543/tests/view/5dce72436e23db1ffe4a274b

6 years agoIncrease aspiration window for drop variants
Fabian Fichter [Mon, 23 Dec 2019 12:10:14 +0000]
Increase aspiration window for drop variants

crazyhouse STC (failed)
LLR: -2.97 (-2.94,2.94) [0.00,10.00]
Total: 3614 W: 1727 L: 1775 D: 112
http://www.variantfishtest.org:6543/tests/view/5deec1876e23db1ffe4a28be

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 3726 W: 1863 L: 1711 D: 152
http://www.variantfishtest.org:6543/tests/view/5deeca6e6e23db1ffe4a28ca

crazyhouse VLTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 11893 W: 5810 L: 5541 D: 542
http://www.variantfishtest.org:6543/tests/view/5df095f66e23db1ffe4a28d8

6 years agoFix endgame evaluation for large-board version
Fabian Fichter [Sat, 7 Dec 2019 15:19:10 +0000]
Fix endgame evaluation for large-board version

Map squares to 8x8 board to retain endgame evaluation logic.
Allows to enable endgame evaluation for large-board variants.

capablanca STC
LLR: 2.99 (-2.94,2.94) [-10.00,5.00]
Total: 2512 W: 980 L: 941 D: 591
http://www.variantfishtest.org:6543/tests/view/5dea40ff6e23db1ffe4a289c

capablanca LTC
LLR: 2.98 (-2.94,2.94) [-10.00,5.00]
Total: 1443 W: 534 L: 490 D: 419
http://www.variantfishtest.org:6543/tests/view/5dea8b666e23db1ffe4a28a6

makruk STC
LLR: 3.00 (-2.94,2.94) [-10.00,5.00]
Total: 1810 W: 158 L: 124 D: 1528
http://www.variantfishtest.org:6543/tests/view/5dea3f546e23db1ffe4a289a

makruk LTC
LLR: 3.01 (-2.94,2.94) [-10.00,5.00]
Total: 795 W: 77 L: 41 D: 677
http://www.variantfishtest.org:6543/tests/view/5dea8b7a6e23db1ffe4a28a8

chess STC
LLR: 2.99 (-2.94,2.94) [-10.00,5.00]
Total: 4321 W: 959 L: 936 D: 2426
http://www.variantfishtest.org:6543/tests/view/5dea398f6e23db1ffe4a2896

chess LTC
LLR: 2.96 (-2.94,2.94) [-10.00,5.00]
Total: 3451 W: 667 L: 640 D: 2144
http://www.variantfishtest.org:6543/tests/view/5dea633a6e23db1ffe4a28a4

6 years agoConsider soldiers as pawn-like in evaluation
Fabian Fichter [Mon, 2 Dec 2019 22:10:15 +0000]
Consider soldiers as pawn-like in evaluation

minixiangqi
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 398 W: 186 L: 101 D: 111

6 years agoFix endgame evaluation for KFsPs vs. K
Fabian Fichter [Mon, 2 Dec 2019 20:48:39 +0000]
Fix endgame evaluation for KFsPs vs. K

Example:
```
setoption name UCI_Variant value makruk
position fen 7k/8/5M2/5KMP/8/8/8/8 w - - 0 1
eval
```

6 years agoBoost piece value of strongest piece
Fabian Fichter [Sun, 1 Dec 2019 22:24:35 +0000]
Boost piece value of strongest piece

shatranj STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 3168 W: 375 L: 300 D: 2493
http://www.variantfishtest.org:6543/tests/view/5de29de76e23db1ffe4a285e

shatranj LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 2416 W: 226 L: 160 D: 2030
http://www.variantfishtest.org:6543/tests/view/5de3007f6e23db1ffe4a2864

6 years agoConsider flying general rule in SEE
Fabian Fichter [Sun, 1 Dec 2019 18:14:32 +0000]
Consider flying general rule in SEE

Mitigates #59.

6 years agoSupport Tsume mode
Fabian Fichter [Sat, 30 Nov 2019 17:35:51 +0000]
Support Tsume mode

Allows to solve Tsume puzzles. Example:
```
setoption name TsumeMode value true
setoption name UCI_Variant value shogi
position fen 1kp6/2l6/2l6/2l6/2n6/2n6/1gn6/9/L8[SPPPPPPrrbbgggsssnlppp] w 0 1
d
go mate 20
```

6 years agoEnable endgame evaluation for S-Chess
Fabian Fichter [Sat, 30 Nov 2019 11:44:06 +0000]
Enable endgame evaluation for S-Chess

seirawan STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 4672 W: 1609 L: 1473 D: 1590
http://www.variantfishtest.org:6543/tests/view/5dd852366e23db1ffe4a27a7

seirawan LTC
LLR: -0.69 (-2.94,2.94) [0.00,10.00]
Total: 12745 W: 3995 L: 3856 D: 4894
http://www.variantfishtest.org:6543/tests/view/5ddba1946e23db1ffe4a27cd

6 years agoTweak initiative for xiangqi
Fabian Fichter [Sat, 30 Nov 2019 01:03:46 +0000]
Tweak initiative for xiangqi

xiangqi
LLR: 3.02 (-2.94,2.94) [0.00,10.00]
Total: 828 W: 279 L: 196 D: 353

minixiangqi
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 312 W: 156 L: 72 D: 84

losers STC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 2266 W: 1013 L: 968 D: 285
http://www.variantfishtest.org:6543/tests/view/5de1105a6e23db1ffe4a2840

shatranj STC
LLR: 2.97 (-2.94,2.94) [-10.00,5.00]
Total: 3498 W: 376 L: 347 D: 2775
http://www.variantfishtest.org:6543/tests/view/5de10fc66e23db1ffe4a283c

6 years agoTweak piece value of amazon
Fabian Fichter [Fri, 29 Nov 2019 13:23:41 +0000]
Tweak piece value of amazon

amazon STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 10420 W: 2230 L: 2067 D: 6123
http://www.variantfishtest.org:6543/tests/view/5dcc4d936e23db1ffe4a2736

amazon LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 7252 W: 1293 L: 1172 D: 4787
http://www.variantfishtest.org:6543/tests/view/5dce721a6e23db1ffe4a2749

6 years agoTweak piece values for drop variants
Fabian Fichter [Tue, 26 Nov 2019 19:06:05 +0000]
Tweak piece values for drop variants

as well as for racing kings.

crazyhouse STC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 4655 W: 2339 L: 2172 D: 144
http://www.variantfishtest.org:6543/tests/view/5ddaff406e23db1ffe4a27c1

crazyhouse LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 3075 W: 1550 L: 1407 D: 118
http://www.variantfishtest.org:6543/tests/view/5ddb15636e23db1ffe4a27c8

racingkings STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 3311 W: 1177 L: 1057 D: 1077
http://www.variantfishtest.org:6543/tests/view/5ddaff586e23db1ffe4a27c4

racingkings LTC
LLR: 2.96 (-2.94,2.94) [-10.00,5.00]
Total: 824 W: 284 L: 239 D: 301
http://www.variantfishtest.org:6543/tests/view/5ddba21c6e23db1ffe4a27d4

6 years agoTweak fairy piece values
Fabian Fichter [Fri, 22 Nov 2019 23:13:13 +0000]
Tweak fairy piece values

centaur
LLR: 3.01 (-2.94,2.94) [0.00,10.00]
Total: 372 W: 208 L: 112 D: 52

shako
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 722 W: 324 L: 231 D: 167

manchu
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 1140 W: 593 L: 480 D: 67

6 years agoConsolidate evaluation of unpromoted soldiers
Fabian Fichter [Fri, 22 Nov 2019 15:50:36 +0000]
Consolidate evaluation of unpromoted soldiers

xiangqi
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 1678 W: 615 L: 516 D: 547

6 years agoAdd more variant templates
Fabian Fichter [Fri, 22 Nov 2019 15:07:03 +0000]
Add more variant templates

6 years agoIncrease endgame king danger for xiangqi
Fabian Fichter [Thu, 21 Nov 2019 22:40:14 +0000]
Increase endgame king danger for xiangqi

minixiangqi
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 508 W: 233 L: 145 D: 130

xiangqi
LLR: 0.25 (-2.94,2.94) [0.00,10.00]
Total: 2000 W: 602 L: 572 D: 826

6 years agoRestore development version
Fabian Fichter [Thu, 21 Nov 2019 19:33:43 +0000]
Restore development version

6 years agoFairy-Stockfish 10.4
Fabian Fichter [Tue, 19 Nov 2019 11:57:44 +0000]
Fairy-Stockfish 10.4

bench: 4756806

6 years agoAdd cambodian to perft tests
Fabian Fichter [Mon, 18 Nov 2019 20:14:16 +0000]
Add cambodian to perft tests

6 years agoAdd more links to readme
Fabian Fichter [Sun, 17 Nov 2019 20:28:49 +0000]
Add more links to readme

6 years agoMerge official-stockfish/master
Fabian Fichter [Sun, 17 Nov 2019 15:09:04 +0000]
Merge official-stockfish/master

bench: 4756806

6 years agoSpeed up move generation for xiangqi
Fabian Fichter [Sun, 17 Nov 2019 14:10:37 +0000]
Speed up move generation for xiangqi

Filter out invalid soldier and general moves early.

6 years agoFix perpetual check detection
Fabian Fichter [Sun, 17 Nov 2019 11:54:18 +0000]
Fix perpetual check detection

Consider also perpetual checks by side to move
in order to avoid wrong draw scores.

Closes #49.

6 years agoMore pieceToCharTable definitions
Fabian Fichter [Sat, 16 Nov 2019 22:04:26 +0000]
More pieceToCharTable definitions

6 years agoMerge official-stockfish/master
Fabian Fichter [Sat, 16 Nov 2019 20:00:42 +0000]
Merge official-stockfish/master

bench: 4552352

6 years agoAdd xiangqihouse to variants.ini
Fabian Fichter [Sat, 16 Nov 2019 17:00:58 +0000]
Add xiangqihouse to variants.ini

Enhance bitboard parsing to simplify definition.

6 years agoIntroduce king flank defenders
Vizvezdenec [Sat, 16 Nov 2019 11:53:11 +0000]
Introduce king flank defenders

This patch implements what we have been trying for quite some time -
dependance of kingdanger on balance of attackers and defenders of king
flank, to avoid overestimate attacking power if the opponent has enough
defenders of king position. We already have some form of it in bishop
and knight defenders - this is further work in this direction.

What to do based on this?

1) constant 4 is arbitrary, maybe it is not optimal
2) maybe we can use quadratic formula as in kingflankattack
3) simplification into alrealy existing terms is always a possibility :)
4) overall kingdanger tuning always can be done.

passed STC:
http://tests.stockfishchess.org/tests/view/5dcf40560ebc590256325f30
LLR: 2.96 (-2.94,2.94) [-1.50,4.50]
Total: 26298 W: 5819 L: 5632 D: 14847

passed LTC:
http://tests.stockfishchess.org/tests/view/5dcfa5760ebc590256326464
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 30600 W: 5042 L: 4784 D: 20774

Closes https://github.com/official-stockfish/Stockfish/pull/2415

Bench: 4496847

6 years agoAdd pieceToCharTable for more variants
Fabian Fichter [Sat, 16 Nov 2019 11:03:38 +0000]
Add pieceToCharTable for more variants

Improve XBoard compatibility for more variants.

6 years agoTweak piece values for xiangqi
Fabian Fichter [Fri, 15 Nov 2019 21:40:52 +0000]
Tweak piece values for xiangqi

xiangqi
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 1704 W: 506 L: 416 D: 782

6 years agoImprove displaying of position
Fabian Fichter [Fri, 15 Nov 2019 18:01:02 +0000]
Improve displaying of position

Add side to move and pockets to output of `d` command (#47).

6 years agoSupport Manchu chess
Fabian Fichter [Fri, 15 Nov 2019 15:31:44 +0000]
Support Manchu chess

https://en.wikipedia.org/wiki/Manchu_chess

bench: 4700464

6 years agoDefine variant template for minixiangqi
Fabian Fichter [Fri, 15 Nov 2019 00:11:08 +0000]
Define variant template for minixiangqi

6 years agoImprove XBoard compatibility
Fabian Fichter [Fri, 15 Nov 2019 00:03:52 +0000]
Improve XBoard compatibility

Support pieceToCharTable in setup command to improve compatibility (#54).

6 years agoImprove XBoard compatibility for makruk variants
Fabian Fichter [Thu, 14 Nov 2019 23:26:46 +0000]
Improve XBoard compatibility for makruk variants

6 years agoPrune before extension
Stefan Geschwentner [Tue, 12 Nov 2019 17:36:12 +0000]
Prune before extension

Switch execution order in search: do move pruning before extension detection.

STC:
LLR: 2.96 (-2.94,2.94) [-1.50,4.50]
Total: 5762 W: 1307 L: 1181 D: 3274
http://tests.stockfishchess.org/tests/view/5dcc56e90ebc59025bcbb833

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 72956 W: 11959 L: 11585 D: 49412
http://tests.stockfishchess.org/tests/view/5dcc62840ebc59025bcbb96f

Closes https://github.com/official-stockfish/Stockfish/pull/2413

Bench: 4532366

6 years agoSupport New Zealand chess
Fabian Fichter [Thu, 14 Nov 2019 16:19:48 +0000]
Support New Zealand chess

Allow castling with one non-rook piece type and add New Zealand chess (#52).

bench: 4470822

6 years agoSupport Centaur chess
Fabian Fichter [Thu, 14 Nov 2019 13:14:44 +0000]
Support Centaur chess

https://www.chessvariants.com/large.dir/contest/royalcourt.html

Closes #33.

bench: 4556696

6 years agoSupport debug commands also in XBoard protocol
Fabian Fichter [Thu, 14 Nov 2019 10:47:47 +0000]
Support debug commands also in XBoard protocol

Commands `d` and `eval` can now also be used in xboard protocol (#47).

6 years agoSeparate XBoard protocol code
Fabian Fichter [Thu, 14 Nov 2019 09:37:59 +0000]
Separate XBoard protocol code

Split UCI and XBoard protocol code for better maintainability.

No functional change.

6 years agoTweak piece values for hoppelpoppel
Fabian Fichter [Thu, 14 Nov 2019 09:25:40 +0000]
Tweak piece values for hoppelpoppel

hoppelpoppel STC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 159 W: 113 L: 25 D: 21
http://www.variantfishtest.org:6543/tests/view/5dcc4d846e23db1ffe4a2734

hoppelpoppel LTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 136 W: 100 L: 16 D: 20
http://www.variantfishtest.org:6543/tests/view/5dcc61d96e23db1ffe4a2739

6 years agoRank-based outposts
SFisGOD [Tue, 12 Nov 2019 01:22:09 +0000]
Rank-based outposts

Introduce OutpostRank[RANK_NB] which contains a bonus according to
the rank of the outpost. We use it for the primary Outpost bonus.
The values are based on the trends of the SPSA tuning run with some
manual tweaks.

Passed STC:
LLR: 2.96 (-2.94,2.94) [-1.50,4.50]
Total: 27454 W: 6059 L: 5869 D: 15526
http://tests.stockfishchess.org/tests/view/5dcadba20ebc590256922f09

Passed LTC:
LLR: 2.94 (-2.94,2.94) [0.00,3.50]
Total: 57950 W: 9443 L: 9112 D: 39395
http://tests.stockfishchess.org/tests/view/5dcaea880ebc5902569230bc

Bench: 4778405

----------------------------

The inspiration for this patch came from Stefan Geschwentner's attempt
of modifying BishopPawns into a rank-based penalty. Michael Stembera
suggested that maybe the S(0, 0) ranks (3rd, 7th and also maybe 8th)
can still be tuned. This would expand our definition of Outpost and
OutpostRanks would be removed altogether. Special thanks to Mark Tenzer
for all the help and excellent suggestions.

6 years agoAvoid copying of pieceToChar string
Fabian Fichter [Tue, 12 Nov 2019 22:53:09 +0000]
Avoid copying of pieceToChar string

Small speed-up by using references.

6 years agoFix description of chancellor in variants.ini
Fabian Fichter [Tue, 12 Nov 2019 20:54:11 +0000]
Fix description of chancellor in variants.ini

6 years agoSupport perft command in xboard protocol
Fabian Fichter [Tue, 12 Nov 2019 19:59:03 +0000]
Support perft command in xboard protocol

6 years agoUpdate documentation in variants.ini
Fabian Fichter [Tue, 12 Nov 2019 19:25:01 +0000]
Update documentation in variants.ini

Describe recently added configuration options.

6 years agoShallow depth pruning on NonPV advanced pawn push
Miguel Lahoz [Sun, 10 Nov 2019 09:49:06 +0000]
Shallow depth pruning on NonPV advanced pawn push

Usually advanced pawn pushes are not considered in shallow depth pruning
because it is risky to do so with possible promotions near the horizon.
However, this heuristic is not also beneficial on NonPV nodes since we
can afford to take slightly more risk on less important nodes.

STC:
LLR: 2.95 (-2.94,2.94) [-1.50,4.50]
Total: 54530 W: 11955 L: 11686 D: 30889
http://tests.stockfishchess.org/tests/view/5dc7dda30ebc5902ea57efd0

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 77336 W: 12786 L: 12399 D: 52151
http://tests.stockfishchess.org/tests/view/5dc8050d0ebc5902ea57f491

Closes https://github.com/official-stockfish/Stockfish/pull/2408

Bench: 4422068

6 years agoRemove explicit moveCount pruning
Joost VandeVondele [Sat, 9 Nov 2019 05:56:18 +0000]
Remove explicit moveCount pruning

The removed lines approximately duplicate equivalent logic in the movePicker.
Adjust the futility_move_count to componsate for some difference
(the movePicker prunes one iteration of the move loop later).

Passed STC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 8114 W: 1810 L: 1663 D: 4641
http://tests.stockfishchess.org/tests/view/5dc6afe60ebc5902562bd318

Passed LTC:
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 89956 W: 14473 L: 14460 D: 61023
http://tests.stockfishchess.org/tests/view/5dc6bdcf0ebc5902562bd3c0

Closes https://github.com/official-stockfish/Stockfish/pull/2407

Bench: 4256440

---------------------

How to continue from there?

It would be interesting to see if we can extract some Elo gain
from the new futility_move_count formula, for instance by somehow
incorporating the final -1 in the 5 constant, or adding a linear
term to the quadratics...

```
   futility_move_count = (5 + depth * depth) * (1 + improving) / 2 - 1
```

6 years agoSequencing tweak in tbprobe()
Alain SAVARD [Sun, 27 Oct 2019 20:16:26 +0000]
Sequencing tweak in tbprobe()

Followup of "issue" #2372, which was in fact a small speed-up
proposal by user @d3vv for the probing code of tablebases.

See comments on this issue where it was proven by Alin Savard that the
proposed change is more efficient on average than master on all type of
sequences it will usually be called.

Note that on gcc 4.3, this will produce a bogus warning which was solved
with ulterior gcc versions: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43949

Closes https://github.com/official-stockfish/Stockfish/issues/2372
Closes https://github.com/official-stockfish/Stockfish/pull/2379

Non functional change

6 years agoFix incorrect mate score.
Joost VandeVondele [Sat, 26 Oct 2019 14:34:19 +0000]
Fix incorrect mate score.

Current master 648c7ec25db2040c0af34dd846dfa3f57af5ad0a will generate an
incorrect mate score for:

```
setoption name Hash value 8
setoption name Threads value 1
position fen 8/1p2KP2/1p4q1/1Pp5/2P5/N1Pp1k2/3P4/1N6 b - - 76 40
go depth 49
```
even though the position is a draw. Generally, SF tries to display only
proven mate scores, so this is a bug.

This was posted http://www.talkchess.com/forum3/viewtopic.php?f=2&t=72166
by Uri Blass, with the correct analysis that this must be related to the
50 moves draw rule being ignored somewhere.

Indeed, this is possible as positions and there eval are stored in the TT,
without reference to the 50mr counter. Depending on the search path followed
a position can thus be mate or draw in the TT (GHI or Graph history interaction).
Therefore, to prove mate lines, the TT content has to be used with care. Rather
than ignoring TT content in general or for mate scores (which impact search or
mate finding), it is possible to be more selective. In particular, @WOnder93
suggested to only ignore the TT if the 50mr draw ply is closer than the mate
ply. This patch implements this idea, by clamping the eval in the TT to
+-VALUE_MATED_IN_MAX_PLY. This retains the TTmove, but causes a research of
these lines (with the current 50mr counter) as needed.

This patch hardly ever affects search (as indicated by the unchanged
bench), but fixes the testcase. As the conditions are very specific,
also mate finding will almost never be less efficient (testing welcome).

It was also shown to pass STC and LTC non-regression testing, in a form
using if/then/else instead of ternary operators:

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 93605 W: 15346 L: 15340 D: 62919
http://tests.stockfishchess.org/tests/view/5db45bb00ebc5908127538d4

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 33873 W: 7359 L: 7261 D: 19253
http://tests.stockfishchess.org/tests/view/5db4c8940ebc5902d6b146fc

closes https://github.com/official-stockfish/Stockfish/issues/2370

Bench: 4362323

6 years agoSet default variant based on protocol
Fabian Fichter [Mon, 11 Nov 2019 20:01:17 +0000]
Set default variant based on protocol

Improve compatibility with shogi and xiangqi GUIs
by setting suitable defaults for UCI_Variant:
UCI: chess
USI: shogi
UCCI: xiangqi
xboard: chess

6 years agoUpdate list of supported protocols in readme
Fabian Fichter [Mon, 11 Nov 2019 15:44:51 +0000]
Update list of supported protocols in readme

6 years agoFurther increase king danger for xiangqi
Fabian Fichter [Sun, 10 Nov 2019 22:03:11 +0000]
Further increase king danger for xiangqi

xiangqi
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 564 W: 199 L: 121 D: 244

6 years agoFix king ring for non-standard board sizes
Fabian Fichter [Sun, 10 Nov 2019 21:51:26 +0000]
Fix king ring for non-standard board sizes

Adjust king danger for shogi variants to compensate for effect of fix.

6 years agoFix attackers calculation for xiangqi generals
Fabian Fichter [Sun, 10 Nov 2019 16:07:43 +0000]
Fix attackers calculation for xiangqi generals

xiangqi
LLR: 1.77 (-2.94,2.94) [0.00,10.00]
Total: 1000 W: 330 L: 274 D: 396

6 years agoMitigate perpetual check blindness
Fabian Fichter [Sun, 10 Nov 2019 16:05:07 +0000]
Mitigate perpetual check blindness

Improve handling of problematic positions in #49.

6 years agoIncrease king danger for xiangqi generals
Fabian Fichter [Sun, 10 Nov 2019 14:19:29 +0000]
Increase king danger for xiangqi generals

xiangqi
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 648 W: 249 L: 166 D: 233

6 years agoCalculate pins by cannons
Fabian Fichter [Sun, 10 Nov 2019 13:00:24 +0000]
Calculate pins by cannons

xiangqi
LLR: 3.01 (-2.94,2.94) [0.00,10.00]
Total: 868 W: 303 L: 218 D: 347

6 years agoTweak endgame scale factor for xiangqi
Fabian Fichter [Sat, 9 Nov 2019 23:38:51 +0000]
Tweak endgame scale factor for xiangqi

xiangqi
LLR: 3.00 (-2.94,2.94) [0.00,10.00]
Total: 1232 W: 413 L: 324 D: 495

6 years agoImprove CI coverage
Fabian Fichter [Sat, 9 Nov 2019 15:19:47 +0000]
Improve CI coverage

6 years agoSupport UCCI protocol
Fabian Fichter [Sat, 9 Nov 2019 14:54:04 +0000]
Support UCCI protocol

http://www.xqbase.com/protocol/cchess_ucci.htm

Closes #46.

6 years agoSearch checking captures early in drop variants
Fabian Fichter [Fri, 8 Nov 2019 15:29:36 +0000]
Search checking captures early in drop variants

crazyhouse STC (yellow)
LLR: -2.96 (-2.94,2.94) [0.00,10.00]
Total: 19119 W: 9373 L: 9198 D: 548
http://www.variantfishtest.org:6543/tests/view/5d93b6486e23db3768ec0881

crazyhouse LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 5822 W: 2894 L: 2711 D: 217
http://www.variantfishtest.org:6543/tests/view/5d94cc056e23db3768ec0892

crazyhouse VLTC
LLR: 2.95 (-2.94,2.94) [0.00,10.00]
Total: 10293 W: 5048 L: 4802 D: 443
http://www.variantfishtest.org:6543/tests/view/5d97772d6e23db3768ec0898

6 years agoSupport xiangqi and minixiangqi
Fabian Fichter [Thu, 7 Nov 2019 22:00:25 +0000]
Support xiangqi and minixiangqi

New features:
- Piece types soldier, horse, and elephant
- Restriction of piece mobility
- Flying general rule
- Piece synonyms

Closes #31.

bench: 4448277

6 years agoRevert "Rook PSQT Tuned"
Stéphane Nicolet [Wed, 6 Nov 2019 10:06:53 +0000]
Revert "Rook PSQT Tuned"

This reverts the previous commit. The PSQT changes in this previous
commit originated from tests against quite an old version of master
which did not include the other PSQT changes of 474d133 for the other
pieces, and there might be some unknown interactions between the PSQT
tables. So we made a non-regression test of the last commit against the
last-but-one commit. This test failed, leading to the revert decision.

Failed non-regression test:
LLR: -2.96 (-2.94,2.94) [-3.00,1.00]
Total: 95536 W: 15047 L: 15347 D: 65142
http://tests.stockfishchess.org/tests/view/5dc0ba1d0ebc5904493b0112

Closes https://github.com/official-stockfish/Stockfish/pull/2395

Bench: 4362323

6 years agoRook PSQT Tuned
SFisGOD [Mon, 4 Nov 2019 19:06:41 +0000]
Rook PSQT Tuned

This patch uses about half the changes of the SPSA tuning run:
http://tests.stockfishchess.org/tests/view/5dba93d30ebc5925b64ed3bf

About a month ago, xoto10's patch raised the mg value of the third rank
center files from -1 to 7 to encourage rook lifts to the third rank. About
three days later, Rocky's patch lowered this value from 7 to 3. This patch
raises that again from 3 to 12 and ends up greater than the original rook
lift patch.

Passed STC:
LLR: 2.95 (-2.94,2.94) [-1.50,4.50]
Total: 104094 W: 22573 L: 22161 D: 59360
http://tests.stockfishchess.org/tests/view/5dbc77f20ebc5925b64ef1d0

Passed LTC:
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 168291 W: 27410 L: 26777 D: 114104
http://tests.stockfishchess.org/tests/view/5dbd9f1e0ebc5925b64f0647

Bench: 4707799

6 years agoRemove shuffle extension
MichaelB7 [Sun, 3 Nov 2019 00:04:05 +0000]
Remove shuffle extension

It was noted in an earlier patch that all of the positions below needed the
Shuffle Detection idea to be solved:

3r4/p3r1pk/PpBb1pRp/1KpPpP1P/2P1P1R1/8/8/8 b - - 32 86
8/8/8/1k6/2p5/p1K5/N2B2r1/8 b - - 59 109
1r4k1/1r1bq3/4p1p1/3pPpPp/pNpN1P1P/P1PnQ3/1PK5/1R3R2 b - - 13 82
5k2/3b4/5p2/p1p1pPp1/PpPpP1Pp/1P1P3P/8/3R1K2 w - - 20 1

But Stockfish has envolved a bit since the Shuffle Detection patch introduction,
and this patch proves Stockfish is able to solves these drawn positions without it,
even on single core without EGTB.

Passed STC
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 14231 W: 3114 L: 2978 D: 8139
http://tests.stockfishchess.org/tests/view/5dbe1a610ebc5925b64f09d9

Passed LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 42781 W: 6917 L: 6831 D: 29033
http://tests.stockfishchess.org/tests/view/5dbe24c20ebc5925b64f0a7a

Passed VLTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 32556 W: 4573 L: 4469 D: 23514
http://tests.stockfishchess.org/tests/view/5dbec3830ebc5925b64f11aa

Closes https://github.com/official-stockfish/Stockfish/pull/2394

Bench: 4362323

----------------------------

Example of search by Michael Byrne for the FEN position:
q1B5/1P1q4/8/8/8/6R1/8/1K1k4 w - - 0 1

This position is win for white and the only moves that wins is Rg1 - all other moves
either draw or lose. With single core and 1024M hash, it is solved without shuffle
detection in 38 seconds on my machine (with no EGTB). This was the position that was
locked in a loop in the initial shuffle detection patch!

```
dep score nodes time (not shown:  tbhits knps seldep)
 50 +1.71  298.9M 2:43.63 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kd4 Rb5 Kc4 Be2+ Kc3 Rb6 Kd4 Bf3 Ke5 Kb2 Kf4 Bd1 Qe5+ Kb1 Qe4+ Ka2 Qd5+ Rb3 Qd2+ Ka3 Qc1+ Kb4 Qc7 Ka4 Qb8 Rb6 Ke5 Kb3 Qg8+ Kb4 Qf8+ Ka5 Qb8 Bb3 Kd4 Kb4 Qf8+ Ka4 Qb8 Ka5 K
<snip>
 49 +1.68  288.5M 2:38.35 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kd4 Rb5 Kc4 Be2+ Kc3 Rb6 Kd4 Bf3 Ke5 Kb2 Kf4 Bd1 Qe5+ Kb1 Qe4+ Ka2 Qd5+ Rb3 Qd2+ Ka3 Qc1+ Kb4 Qc7 Ka4 Qb8 Rb6 Ke5 Kb3 Qg8+ Kb4 Qf8+ Ka5 Qb8 Bb3 Kd4 Kb4 Ke3 Be6 Ke4 Bc4 Ke
<snip>
 48 +1.78  228.5M 2:01.93 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kd4 Rb5 Kc4 Be2+ Kc3 Rb6 Kd4 Bf3 Ke5 Kb2 Kf4 Bd1 Qe5+ Kb1 Qe4+ Ka2 Qd5+ Rb3 Qd2+ Ka3 Qa5+ Kb2 Qe5+ Ka2 Qb8 Rb5 Ke3 Kb1 Ke4 Bb3 Kf4 Be6 Ke3 Rb4 Kd3 Kb2 Ke3 Bd5 Qe5+ Kc2 Qh
<snip>
 46 +1.49  198.4M 1:44.89 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kd4 Rb5 Kc4 Be2+ Kc3 Rb6 Kd4 Bf3 Ke5 Kb2 Kf4 Bd1 Qe5+ Kb1 Qe4+ Ka2 Qd5+ Rb3 Qd2+ Ka3 Qc1+ Kb4 Qc7 Ka4 Qb8 Rb6 Qe8+ Rb5 Qb8 Bc2 Qa7+ Kb3 Qe3+ Kc4 Qe6+ Kb4 Qd6+ Kb3 Qb8 Rb4
<snip>
 45 +1.45  154.5M 1:20.75 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kd4 Rb5 Kc4 Be2+ Kc3 Rb6 Kd4 Bf3 Ke3 Bg2 Kd4 Rb5 Kc4 Bf1+ Kd4 Kb2 Qh2+ Kb3 Qg3+ Ka4 Qb8 Be2 Ke3 Bc4 Kf4 Kb4 Qd6+ Kc3 Qb8 Kc2 Ke4 Be6 Qh2+ Kb3 Qg3+ Ka4 Qb8 Bb3 Kd4 Bd5 Ke3
<snip>
 44 +1.36  141.9M 1:14.40 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Qd6 Rc2+ Kd3 Be2+ Ke3 Rb2 Qb8 Bd1 Ke4 Rb5 Kd4 Bf3 Kc4 Be2+ Kc3 Rb6 Kd2 Bc4 Kc3 Bd5 Kd4 Bg2 Ke5 Kb2 Kd4 Rb5 Kc4 Bf1+ Kd4 Be2 Ke4 Bc4 Qh2+ Kb3 Qg3+ Ka4 Qb8 Bd5+ Kd4 Be6 Ke4
<snip>
 43 +1.36  134.1M 1:10.46 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Qd6 Rc2+ Kd3 Be2+ Ke3 Rb2 Qb8 Bd1 Ke4 Rb5 Kd4 Bf3 Kc4 Be2+ Kc3 Rb6 Kd2 Bc4 Kc3 Be6 Kd4 Rb5 Kc3 Bf7 Kd4 Kb2 Ke4 Kb3 Kf4 Kc3 Ke4 Kb2 Qh2+ Kb3 Qg3+ Ka4 Qb8 Rb4+ Ke5 Rb6 Kf4
<snip>
 42 +1.36  118.7M 1:01.60 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Qd6 Rc2+ Kd3 Be2+ Ke3 Rb2 Qb8 Bd1 Ke4 Rb5 Kd4 Bf3 Kc4 Be2+ Kc3 Rb6 Kd2 Bc4 Kc3 Be6 Kd4 Rb5 Kc3 Bf7 Kd4 Kb2 Ke4 Bc4 Qh2+ Kb3 Qg3+ Ka4 Qb8 Bd5+ Kd4 Bb3 Qa7+ Kb4 Qb8 Bc4 Ke4
<snip>
 41 +1.38  110.3M 0:56.80 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Qd6 Rc2+ Kd3 Be2+ Ke3 Rb2 Qb8 Bd1 Ke4 Rb5 Kd4 Bf3 Kc4 Be2+ Kc3 Rb6 Kd2 Bc4 Kc3 Be6 Kd4 Rb5 Kc3 Bd5 Kd4 Ba2 Ke4 Be6 Kd4 Kb2 Qh2+ Kb3 Qb8 Bc4 Ke3 Kc3 Qh8+ Kb4 Qb2+ Ka4 Qa1+
 <snip>
 39 +1.25  87.3M   0:44.48 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kd4 Rb5 Kc4 Be2+ Kc3 Rb6 Kd4 Bf3 Ke5 Kb2 Kf4 Bd1 Kg5 Kb1 Kf5 Bb3 Ke5 Kb2 Kd4 Rb5 Qh2+ Bc2 Qb8 Bd1 Kc4 Be2+ Kd4 Kc2 Ke3 Bd1 Kd4 Kb3 Qg3+ Ka4 Qb8 Bb3 Kc3 Rb6 Kd4 Kb5 Ke5 K
 38 +1.25  82.0M   0:41.90 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kd4 Rb5 Kc4 Be2+ Kc3 Rb6 Kd4 Bf3 Ke5 Kb2 Kf4 Bd1 Kg5 Kb1 Kf5 Bb3 Ke5 Kb2 Kd4 Rb5 Qh2+ Bc2 Qb8 Kb3 Qg3+ Ka4 Qb8 Bb3 Kc3 Rb6 Kd4 Kb5 Ke5 Kb4 Kd4 Be6 Kd3 Bd5 Kd4 Bf3 Ke5 Be
<snip>
 37 +0.13  79.3M   0:40.44 Rg1+ Kd2 Rg2+ Kc3 Rc2+ Kb3 Rb2+ Kc3 Bxd7 Qf8 Ba4 Qb8 Bd1 Kc4 Bf3 Kd4 Rb5 Kc4 Rb6 Kd4 Rb2 Ke5 Rb3 Kd6 Rb5 Ke6 Rb4 Kd6 Kc2 Kc5 Kb3 Kd6 Be4 Ke7 Kc3 Qc7+ Kd3 Qg3+ Kc2 Qf2+ Kb3 Qe3+ Ka2 Qa7+ Kb2 Qb8 Kb3 Kd6 Bf3 Qg8+ Ka3 Kc7 b8=R Qx
 37 +0.67! 78.3M   0:39.90 Rg1+!
 37 +0.47! 77.0M   0:39.18 Rg1+!
 37 +0.32! 76.8M   0:39.11 Rg1+!
 37 +0.23! 76.8M   0:39.07 Rg1+!
 36 +0.57! 76.1M   0:38.72 Rg1+!
 36 +0.37! 75.8M   0:38.59 Rg1+!
 36 +0.23! 75.7M   0:38.51 Rg1+!
 36 +0.13! 75.6M   0:38.49 Rg1+!
 35 +0.03? 58.0M   0:29.84 bxa8=Q Qb5+?
```

6 years agoMake Square and Bitboard operators commutative
31m059 [Fri, 1 Nov 2019 04:27:19 +0000]
Make Square and Bitboard operators commutative

As Stockfish developers, we aim to make our code as legible and as close
to simple English as possible. However, one of the more notable exceptions
to this rule concerns operations between Squares and Bitboards.

Prior to this pull request, AND, OR, and XOR were only defined when the
Bitboard was the first operand, and the Square the second. For example,
for a Bitboard b and Square s, "b & s" would be valid but "s & b" would not.
This conflicts with natural reasoning about logical operators, both
mathematically and intuitively, which says that logical operators should
commute.

More dangerously, however, both Square and Bitboard are defined as integers
"under the hood." As a result, code like "s & b" would still compile and give
reasonable bench values. This trap occasionally ensnares even experienced
Stockfish developers, but it is especially dangerous for new developers not
aware of this peculiarity. Because there is no compilation or runtime error,
and a reasonable bench, only a close review by approvers can spot this error
when a test has been submitted--and many times, these bugs have slipped past
review. This is by far the most common logical error on Fishtest, and has
wasted uncountable STC games over the years.

However, it can be fixed by adding three non-functional lines of code. In this
patch, we define the operators when the operands are provided in the opposite
order, i.e., we make AND, OR, and XOR commutative for Bitboards and Squares.
Because these are inline methods and implemented identically, the executable
does not change at all.

This patch has the small side-effect of requiring Squares to be explicitly
cast to integers before AND, OR, or XOR with integers. This is only performed
twice in Stockfish's source code, and again does not change the executable at
all (since Square is an enum defined as an integer anyway).

For demonstration purposes, this pull request also inverts the order of one AND
and one OR, to show that neither the bench nor the executable change. (This
change can be removed before merging, if preferred.)

I hope that this pull request significantly lowers the barrier-of-entry for new
developer to join the Stockfish project. I also hope that this change will improve
our efficiency in using our generous CPU donors' machines, since it will remove
one of the most common causes of buggy tests.

Following helpful review and comments by Michael Stembera (@mstembera), we add
a further clean-up by implementing OR for two Squares, to anticipate additional
traps developers may encounter and handle them cleanly.

Closes https://github.com/official-stockfish/Stockfish/pull/2387

No functional change.

6 years agoEnsure that GUI sends time command in CECP
Fabian Fichter [Mon, 4 Nov 2019 18:02:27 +0000]
Ensure that GUI sends time command in CECP

6 years agoFix mate score for XBoard protocol (#44)
Fabian Fichter [Sun, 3 Nov 2019 18:05:47 +0000]
Fix mate score for XBoard protocol (#44)

6 years agoReplace hard-coded variant name
Fabian Fichter [Sun, 3 Nov 2019 17:53:44 +0000]
Replace hard-coded variant name

No functional change.

6 years agoFix mate score for XBoard protocol (#44)
Fabian Fichter [Sun, 3 Nov 2019 17:46:15 +0000]
Fix mate score for XBoard protocol (#44)

6 years agoSupport XBoard protocol (close #37)
Fabian Fichter [Fri, 1 Nov 2019 20:36:31 +0000]
Support XBoard protocol (close #37)

6 years agoFix quiet check move generation
Fabian Fichter [Sun, 3 Nov 2019 08:57:12 +0000]
Fix quiet check move generation

Do not generate quiet checks outside of board in quiescence search.

Closes #45.

6 years agoCombo of Parameter Tweaks
SFisGOD [Fri, 1 Nov 2019 05:58:11 +0000]
Combo of Parameter Tweaks

This patch is a combo of the following tweaks:

Complexity parameters
Knight PSQT
Bishop PSQT
King PSQT
Piece Values

Passed STC:
LLR: 2.95 (-2.94,2.94) [-1.50,4.50]
Total: 56527 W: 12326 L: 12052 D: 32149
http://tests.stockfishchess.org/tests/view/5dbbca3f0ebc5925b64ee6d6

Passed LTC:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 64010 W: 10549 L: 10199 D: 43262
http://tests.stockfishchess.org/tests/view/5dbc30dc0ebc5925b64eee0c

Closes https://github.com/official-stockfish/Stockfish/pull/2390

Bench: 4312945

6 years agoSimplify kingRing
protonspring [Thu, 31 Oct 2019 15:01:33 +0000]
Simplify kingRing

Simplify the king ring initialization and make it more regular, by just
moving the king square off the edges and using PseudoAttacks by king from
this new square.

There is a small functional difference from the previous master, as the
old master excludes the original ksq square while this patch always includes
the nine squares block (after moving the king from the edges). Additionally,
master does not adjust the kingRing down if we are on relative rank 8,
while this patch treats all of the edges the same.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 13263 W: 2968 L: 2830 D: 7465
http://tests.stockfishchess.org/tests/view/5db872830ebc5902d1f388aa

LTC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 72996 W: 11819 L: 11780 D: 49397
http://tests.stockfishchess.org/tests/view/5db899c20ebc5902d1f38b5e

Closes https://github.com/official-stockfish/Stockfish/pull/2384

Bench: 4959244

6 years agoConsolidate pawn_push and up
protonspring [Thu, 31 Oct 2019 16:17:46 +0000]
Consolidate pawn_push and up

This is a non-functional simplification. Pawn_push and Up are redundant.
If we make up pawn_push, we can use it for all of the Up's and Down's.
In this version, I've also left the Up and Down constants so that there
is no worse readability.

STC
LLR: 2.95 (-2.94,2.94) [-3.00,1.00]
Total: 23878 W: 5202 L: 5085 D: 13591
http://tests.stockfishchess.org/tests/view/5db5569a0ebc5902d6b14de4

Closes https://github.com/official-stockfish/Stockfish/pull/2378

No functional change

6 years agoTweak dynamic contempt (the birthday patch)
Stefan Geschwentner [Tue, 29 Oct 2019 09:35:56 +0000]
Tweak dynamic contempt (the birthday patch)

Make dynamic contempt weight factor dependent on static contempt so that higher
static contempt implies less dynamic contempt and vice versa. For default contempt
24 this is a non-functional change. But tests with contempt 0 shows an elo gain.
Also today is my birthday so i have already give to myself a gift with this patch :-)!

Further proceedings:

in the past we checked for default contempt that it doesn't regress against
contempt 0. Now that the later is stronger and the former is the same strength
this should be rechecked. Perhaps the default contempt have to be lowered.
It would be interesting to get some idea of the impact of this patch outside
of the 0-24 contempt range.

STC: (both with contempt=0)
LLR: 2.95 (-2.94,2.94) [-1.50,4.50]
Total: 21912 W: 3898 L: 3740 D: 14274
http://tests.stockfishchess.org/tests/view/5db74b6f0ebc5902d1f37405

LTC: (both with contempt=0)
LLR: 2.96 (-2.94,2.94) [0.00,3.50]
Total: 27172 W: 3350 L: 3126 D: 20696
http://tests.stockfishchess.org/tests/view/5db760020ebc5902d1f375d0

Closes https://github.com/official-stockfish/Stockfish/pull/2382

No functional change (for current default contempt 24).

6 years agoConsistent capture_or_promotion for special moves
Fabian Fichter [Sat, 26 Oct 2019 19:24:02 +0000]
Consistent capture_or_promotion for special moves

No functional change except for cambodian, micro, and kyotoshogi.

6 years agoRewrite king danger of pieces in hand
Fabian Fichter [Fri, 25 Oct 2019 22:01:09 +0000]
Rewrite king danger of pieces in hand

crazyhouse STC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 1056 W: 576 L: 460 D: 20
http://www.variantfishtest.org:6543/tests/view/5db370d96e23db1ffe4a2671

crazyhouse LTC
LLR: 2.96 (-2.94,2.94) [0.00,10.00]
Total: 708 W: 399 L: 289 D: 20
http://www.variantfishtest.org:6543/tests/view/5db410896e23db1ffe4a2679

6 years agoRefactor final stats updates.
Joost VandeVondele [Wed, 23 Oct 2019 06:26:47 +0000]
Refactor final stats updates.

This PR refactors update_quiet_stats, update_capture_stats and search to more clearly reflect what is actually done.

Effectively, all stat updates that need to be done after search is finished and a bestmove is found,
are collected in a new function ```final_stats_update()```. This shortens our main search routine, and simplifies ```update_quiet_stats```.
The latter function is now more easily reusable with fewer arguments, as the handling of ```quietsSearched``` is only needed in ```final_stats_update```.
```update_capture_stats```, which was only called once is now integrated in ```final_stats_update```, which allows for removing a branch and reusing some ```stat_bonus``` calls. The need for refactoring was also suggested by the fact that the comments of ```update_quiet_stats``` and ```update_capture_stats``` were incorrect (e.g. ```update_capture_stats``` was called, correctly, also when the bestmove was a quiet and not a capture).

passed non-regression STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 75196 W: 16364 L: 16347 D: 42485
http://tests.stockfishchess.org/tests/view/5db004ec0ebc5902c06db9e1

The diff is most easily readable as ```git diff master --patience```

No functional change

6 years agoAssorted trivial cleanups
Stéphane Nicolet [Sat, 19 Oct 2019 00:20:38 +0000]
Assorted trivial cleanups

- Cleanups by Alain
- Group king attacks and king defenses
- Signature of futility_move_count()
- Use is_discovery_check_on_king()
- Simplify backward definition
- Use static asserts in move generator
- Factor a statement in move generator

No functional change

6 years agoReduce memory footprint of continuation history
Fabian Fichter [Fri, 25 Oct 2019 14:27:30 +0000]
Reduce memory footprint of continuation history

Close #43.

No functional change.

6 years agoMerge official-stockfish/master
Fabian Fichter [Fri, 25 Oct 2019 09:11:10 +0000]
Merge official-stockfish/master

bench: 4231542

6 years agoSimplify reductions on singular extension
Joost VandeVondele [Mon, 21 Oct 2019 20:21:50 +0000]
Simplify reductions on singular extension

Current master employs a scheme to adjust reductions on singular
nodes that is somewhat controversial, see
https://github.com/official-stockfish/Stockfish/pull/2167

This patch removes this use of a search result outside of [a,b],
by observing that the main effect of this code is to adjust the
reduction by an average of ~2 (1.7) rather than 1.

Claims the first blue at STC and LTC:

STC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 30142 W: 6547 L: 6442 D: 17153
http://tests.stockfishchess.org/tests/view/5daf16c40ebc5902c06da566

LTC:
LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
Total: 45715 W: 7380 L: 7298 D: 31037
http://tests.stockfishchess.org/tests/view/5daf2f3c0ebc5902c06da6c7

Closes https://github.com/official-stockfish/Stockfish/pull/2367

Bench: 5115841

6 years agoAvoid crashing on Log File opening
Joost VandeVondele [Mon, 21 Oct 2019 06:05:14 +0000]
Avoid crashing on Log File opening

Stockfish crashes immediately if users enter a wrong file name (or even an existing
folder name) for debug log file. It may be hard for users to find out since it prints
nothing. If they enter the string via a chess GUI, the chess GUI may remember and
auto-send to Stockfish next time, makes Stockfish crashes all the time. Bug report by
Nguyen Hong Pham in this issue: https://github.com/official-stockfish/Stockfish/issues/2365

This patch avoids the crash and instead prefers to exit gracefully with a error
message on std:cerr, like we do with the fenFile for instance.

Closes https://github.com/official-stockfish/Stockfish/pull/2366

No functional change.

6 years agoReturn to development version
Fabian Fichter [Mon, 21 Oct 2019 11:47:58 +0000]
Return to development version

6 years agoFairy-Stockfish 10.3
Fabian Fichter [Mon, 21 Oct 2019 10:31:56 +0000]
Fairy-Stockfish 10.3

bench: 3686859

6 years agoDescribe variant configuration inheritance in INI
Fabian Fichter [Mon, 21 Oct 2019 10:22:01 +0000]
Describe variant configuration inheritance in INI

6 years agoRemove uithread
xoto10 [Thu, 19 Sep 2019 16:10:46 +0000]
Remove uithread

With the current questions and issues around threading, I had a look at
https://github.com/official-stockfish/Stockfish/issues/2299.

It seems there was a problem with data races when requesting eval via UCI while
a search was already running. To fix this an extra thread uithread was created,
presumably to avoid an overlap with Threads.main() that was causing problems.
Making this eval request seems to be outside the scope of UCI, and @vondele also
reports that the data race is not even fixed reliably by this change. I suggest
we simplify the threading here by removing this uithread and adding a comment
signaling that user should not request eval when a search is already running.

Closes https://github.com/official-stockfish/Stockfish/pull/2310

No functional change.

6 years agoScale piece values with board size
Fabian Fichter [Mon, 14 Oct 2019 11:51:55 +0000]
Scale piece values with board size

losalamos STC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 786 W: 242 L: 164 D: 380
http://35.161.250.236:6543/tests/view/5da456e16e23db3768ec0928

losalamos LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 480 W: 161 L: 87 D: 232
http://35.161.250.236:6543/tests/view/5da4790a6e23db3768ec092a

courier STC
LLR: 2.98 (-2.94,2.94) [0.00,10.00]
Total: 1971 W: 550 L: 459 D: 962
http://35.161.250.236:6543/tests/view/5da4f9696e23db3768ec0938

courier LTC
LLR: 2.97 (-2.94,2.94) [0.00,10.00]
Total: 755 W: 231 L: 154 D: 370
http://35.161.250.236:6543/tests/view/5da4fa306e23db3768ec093b

6 years agoCurrent capture for Counter-Move history
VoyagerOne [Fri, 18 Oct 2019 13:23:00 +0000]
Current capture for Counter-Move history

Use current capture to index the CMH table instead of prior capture.

STC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 61908 W: 13626 L: 13220 D: 35062
http://tests.stockfishchess.org/tests/view/5da8aa670ebc597ba8eda558

LTC:
LLR: 2.96 (-2.94,2.94) [0.00,4.00]
Total: 49057 W: 8071 L: 7765 D: 33221
http://tests.stockfishchess.org/tests/view/5da8e99d0ebc597ba8eda9ca

Closes https://github.com/official-stockfish/Stockfish/pull/2362

Bench: 4423737

6 years agoMore documentation in variants.ini (close #30)
Fabian Fichter [Fri, 18 Oct 2019 14:13:03 +0000]
More documentation in variants.ini (close #30)