fairystockfish.git
2 years agoRefactor capture the flag implementation
Fabian Fichter [Sat, 22 Apr 2023 14:17:31 +0000]
Refactor capture the flag implementation

Simplify and generalize implementation to support color-specific
flag pieces as well as allowing all pieces to be eligible.

2 years agoFlagvariants (#638)
RainRat [Sat, 22 Apr 2023 12:15:24 +0000]
Flagvariants (#638)

2 years agoEnsure stable count for nnueKing
Fabian Fichter [Fri, 14 Apr 2023 16:57:34 +0000]
Ensure stable count for nnueKing

2 years agoEnsure correct NNUE king index (#643)
Fabian Fichter [Fri, 14 Apr 2023 14:44:37 +0000]
Ensure correct NNUE king index (#643)

2 years agoadd allexplodeatomic (#639)
RainRat [Wed, 12 Apr 2023 20:38:18 +0000]
add allexplodeatomic (#639)

2 years agoadd mini games (#640)
RainRat [Wed, 12 Apr 2023 16:45:17 +0000]
add mini games (#640)

1D Chess, Tuktuk, Aralzaa, Bajr, Lewthwaite's Game, Hexapawn

2 years agoDo not use 2 fold adjudication for chases (#637)
Fabian Fichter [Mon, 10 Apr 2023 09:10:34 +0000]
Do not use 2 fold adjudication for chases (#637)

Closes #635.

2 years agoFix flipello6 configuration
Fabian Fichter [Wed, 5 Apr 2023 16:54:44 +0000]
Fix flipello6 configuration

Closes #630.

2 years agoUpdate Variants.ini (#627)
Belzedar94 [Tue, 4 Apr 2023 13:57:55 +0000]
Update Variants.ini (#627)

2 years agoadd kono and fox-and-hounds (#628)
RainRat [Tue, 4 Apr 2023 12:26:51 +0000]
add kono and fox-and-hounds (#628)

2 years agoAdd Board.checkedPieces() to ffish.js (#626)
Ada Joule [Sun, 2 Apr 2023 19:25:37 +0000]
Add Board.checkedPieces() to ffish.js (#626)

2 years agoAllow to set protocol at startup
Fabian Fichter [Sun, 2 Apr 2023 16:22:46 +0000]
Allow to set protocol at startup

2 years agoSupport combining duck with pseudo-royalty
Fabian Fichter [Sun, 2 Apr 2023 15:14:33 +0000]
Support combining duck with pseudo-royalty

2 years agoSupport Sort of Almost Chess
Fabian Fichter [Sun, 2 Apr 2023 15:45:03 +0000]
Support Sort of Almost Chess

2 years agoRedefine reset of 50 move rule counter (#616)
Fabian Fichter [Sat, 1 Apr 2023 16:25:21 +0000]
Redefine reset of 50 move rule counter (#616)

2 years agoAdd ALLVARS binary to builds
Fabian Fichter [Sat, 1 Apr 2023 15:18:14 +0000]
Add ALLVARS binary to builds

Closes #591.

2 years agoFix gives_check for cannons and kings (#620)
Fabian Fichter [Sat, 1 Apr 2023 15:33:16 +0000]
Fix gives_check for cannons and kings (#620)

Closes #590.

2 years agoFix assertion for en passant
Fabian Fichter [Sat, 1 Apr 2023 14:35:19 +0000]
Fix assertion for en passant

2 years agoRemove unnecessary cleanup in ffishjs makefile
Fabian Fichter [Sat, 1 Apr 2023 11:31:45 +0000]
Remove unnecessary cleanup in ffishjs makefile

2 years agoFix shako castling when rook in corner (#617)
Fabian Fichter [Sat, 1 Apr 2023 10:40:24 +0000]
Fix shako castling when rook in corner (#617)

2 years agoRemove redundant appveyor pyffish build
Fabian Fichter [Fri, 31 Mar 2023 22:58:56 +0000]
Remove redundant appveyor pyffish build

2 years agoConsider duple check in is_check
Fabian Fichter [Fri, 31 Mar 2023 22:09:24 +0000]
Consider duple check in is_check

2 years agoFix new variant config
Fabian Fichter [Fri, 31 Mar 2023 16:53:05 +0000]
Fix new variant config

2 years agoAdd more variant configs
Fabian Fichter [Fri, 31 Mar 2023 16:26:25 +0000]
Add more variant configs

2 years agoBump version
QueensGambit [Wed, 29 Mar 2023 18:17:57 +0000]
Bump version

2 years agoBump pyffish version (#613)
Bajusz Tamás [Wed, 29 Mar 2023 06:16:29 +0000]
Bump pyffish version (#613)

2 years agomove isolation, joust, snailtrail to default build. fix typos (#611)
RainRat [Tue, 28 Mar 2023 09:52:58 +0000]
move isolation, joust, snailtrail to default build. fix typos (#611)

2 years agoTweak custom piece value estimation
Fabian Fichter [Sun, 26 Mar 2023 16:26:50 +0000]
Tweak custom piece value estimation

2 years agoAdd passed pawn evaluation for custom pawns
Fabian Fichter [Sun, 26 Mar 2023 14:11:01 +0000]
Add passed pawn evaluation for custom pawns

2 years agoSimplify usages of piece types and sets
Fabian Fichter [Sat, 25 Mar 2023 16:26:04 +0000]
Simplify usages of piece types and sets

No functional change.

2 years agoSupport multiple castling rook types (#603)
Fabian Fichter [Sat, 25 Mar 2023 13:35:08 +0000]
Support multiple castling rook types (#603)

Closes #52.

2 years agoUpdate descriptions (#605)
gnunicode [Sat, 25 Mar 2023 10:21:26 +0000]
Update descriptions (#605)

2 years agoReplace set<PieceType> by PieceSet enum (#602)
Fabian Fichter [Fri, 24 Mar 2023 22:27:55 +0000]
Replace set<PieceType> by PieceSet enum (#602)

Simplifies the code and improves performance.

No functional change.

2 years agoSupport custom pawn pieces
Fabian Fichter [Fri, 24 Mar 2023 15:54:31 +0000]
Support custom pawn pieces

This introduces support for
* initial moves, promotions, and en passant for all pieces.
* arbitrarily shaped double/triple step and promotion regions.
* per color configuration of promotion types and zone, etc.

These new configuration options enable support for
* Berolina, Spartan, Wolf
* Torpedo, pawnsideways, pawnback
* Legan, Troitzky

Most changed configuration options are kept as deprected options for now
for backwards compatibility, but it is recommended to migrate variant
configuration files as the deprecated options might be removed later.

Closes #305, closes #4, closes #209, closes #260, closes #51, closes #328, closes #596.

No functional change for other variants.

2 years agoAdd utility script for regression testing
Fabian Fichter [Fri, 24 Mar 2023 00:10:02 +0000]
Add utility script for regression testing

No functional change.

2 years agoSkip parsing invalid squares (#599)
Fabian Fichter [Sun, 19 Mar 2023 19:27:56 +0000]
Skip parsing invalid squares (#599)

2 years agoFix atomic captures with wall squares
Fabian Fichter [Fri, 17 Mar 2023 11:17:33 +0000]
Fix atomic captures with wall squares

Closes #599.

2 years agoFix CI out of memory
Fabian Fichter [Wed, 8 Mar 2023 22:21:00 +0000]
Fix CI out of memory

Closes #586.

2 years agoUpdate README.md
Fabian Fichter [Fri, 3 Mar 2023 23:26:09 +0000]
Update README.md

2 years agoUpdate README.md
Fabian Fichter [Fri, 3 Mar 2023 22:15:38 +0000]
Update README.md

2 years agoUpdate README.md
Fabian Fichter [Sun, 26 Feb 2023 22:04:16 +0000]
Update README.md

2 years agoUpdate FUNDING.yml
Fabian Fichter [Fri, 24 Feb 2023 18:17:43 +0000]
Update FUNDING.yml

2 years agoLimit depth for all=yes to reduce stack usage
Fabian Fichter [Sat, 18 Feb 2023 14:20:00 +0000]
Limit depth for all=yes to reduce stack usage

Partially addresses #583.

2 years agoUpdate variants.ini
Snowmoondaphne [Tue, 14 Feb 2023 21:57:10 +0000]
Update variants.ini

2 years agoAdd typescript type definition file for ffish.js (#571)
Ada Joule [Tue, 24 Jan 2023 20:54:19 +0000]
Add typescript type definition file for ffish.js (#571)

2 years agoFix CI
Fabian Fichter [Tue, 24 Jan 2023 20:49:32 +0000]
Fix CI

bench: 6180480

2 years agostatic and past gating: isolation, joust, snailtrail (#579)
RainRat [Tue, 24 Jan 2023 20:37:50 +0000]
static and past gating: isolation, joust, snailtrail (#579)

2 years agoLess move count pruning for wall gating
Fabian Fichter [Fri, 20 Jan 2023 15:23:12 +0000]
Less move count pruning for wall gating

duck STC
ELO: 54.65 +-27.2 (95%) LOS: 100.0%
Total: 500 W: 234 L: 156 D: 110

duck LTC
ELO: 68.63 +-43.2 (95%) LOS: 99.9%
Total: 200 W: 97 L: 58 D: 45

amazons STC
ELO: 30.65 +-43.4 (95%) LOS: 91.9%
Total: 250 W: 136 L: 114 D: 0

2 years agoBump version
QueensGambit [Sun, 15 Jan 2023 08:23:04 +0000]
Bump version

2 years agoBump pyffish version
Fabian Fichter [Sat, 14 Jan 2023 17:29:38 +0000]
Bump pyffish version

2 years agoSupport wall squares (#565)
Fabian Fichter [Sat, 14 Jan 2023 15:37:01 +0000]
Support wall squares (#565)

Add support for squares that are neither accessible
nor traversable, using the standard `*` notation.

* Add support for duck chess, closing #528.
* Add support for wall squares, e.g., Omicron and Gustav III chess, closing #53.
* Support petrification on capture.
* Refactor game of the amazons to use wall squares.
  * This changes both the FEN and move representation.
* Enable -DALLVARS for both pyffish and ffishjs.

Note: With this commit `pieces() == pieces(WHITE) | pieces(BLACK)`
can no longer be assumed due to the possibility of wall squares.

2 years agoCorrectly restrict to mustDropType
Fabian Fichter [Fri, 13 Jan 2023 19:10:14 +0000]
Correctly restrict to mustDropType

Closes #549.

2 years agoIgnore temporary immobility for immobilityIllegal
Fabian Fichter [Fri, 13 Jan 2023 18:38:54 +0000]
Ignore temporary immobility for immobilityIllegal

Closes #521.

2 years agoConsider configured pawn mobility region
Fabian Fichter [Fri, 13 Jan 2023 19:27:55 +0000]
Consider configured pawn mobility region

Closes #498.

2 years agoThai Notations (#563)
Ada Joule [Mon, 26 Dec 2022 17:19:58 +0000]
Thai Notations (#563)

3 years agoSupport Paradigm chess
Fabian Fichter [Sat, 10 Dec 2022 17:37:08 +0000]
Support Paradigm chess

3 years agoFix variant parsing for invalid board size
Fabian Fichter [Sat, 10 Dec 2022 17:21:40 +0000]
Fix variant parsing for invalid board size

3 years agoBump version
QueensGambit [Sat, 3 Dec 2022 10:57:42 +0000]
Bump version

3 years agoDobutsu rule fixes (#553)
Bajusz Tamás [Fri, 2 Dec 2022 12:58:48 +0000]
Dobutsu rule fixes (#553)

3 years agoUpdate ffish-test deployment link
Terry Hearst [Fri, 25 Nov 2022 19:40:48 +0000]
Update ffish-test deployment link

3 years agoPyffish python11 (#546)
Bajusz Tamás [Fri, 25 Nov 2022 15:05:17 +0000]
Pyffish python11 (#546)

3 years agoUpdate variants.ini
Snowmoondaphne [Wed, 2 Nov 2022 16:34:30 +0000]
Update variants.ini

3 years agoenable bit manipulation instruction set 1
disservin [Sun, 16 Oct 2022 12:37:01 +0000]
enable bit manipulation instruction set 1

bmi1 enables the use of _blsr_u64 for pop_lsb, and is availabe when avx2 is.

verified a small speedup (0.2 - 0.6%)

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

No functional change

3 years agoUpdate AUTHORS
Fabian Fichter [Sat, 8 Oct 2022 10:53:00 +0000]
Update AUTHORS

3 years agoUpdate xboard.cpp - remove command
Rick [Wed, 5 Oct 2022 21:25:53 +0000]
Update xboard.cpp - remove command

Adding remove command xboard sends with CTRL+X, only sent when player's turn, go back two moves to players previous turn. Allows player to go back and try different moves without engine stopping like undo, see https://www.gnu.org/software/xboard/engine-intf.html#8 for differences between undo and remove.

3 years agoBump version
QueensGambit [Sat, 1 Oct 2022 14:37:37 +0000]
Bump version

3 years agoEpose variant capturesToHand to js/python (#522)
Bajusz Tamás [Sat, 1 Oct 2022 10:51:22 +0000]
Epose variant capturesToHand to js/python (#522)

3 years agoBump pyffish version
gbtami [Wed, 28 Sep 2022 09:34:00 +0000]
Bump pyffish version

3 years agoBump version
QueensGambit [Sun, 25 Sep 2022 15:02:10 +0000]
Bump version

3 years agoImplement correct Cambodian opening moves (#514)
Ada Joule [Sat, 17 Sep 2022 13:59:48 +0000]
Implement correct Cambodian opening moves (#514)

Article 5, Items 3 and 4
https://docs.google.com/document/d/1adppJ66vonM27UYwC-KyldXl7oZ_5Pb0/edit?usp=sharing&ouid=116281580550740302191&rtpof=true&sd=true

- The king now loses the ability to leap if an enemy rook moves into the
  same rank or file
- The ferz can no longer capture with its leap

3 years agoImplement Ouk Chaktrang's counting rules
Ada Joule [Fri, 9 Sep 2022 11:01:04 +0000]
Implement Ouk Chaktrang's counting rules

According to Article 5, Item 5 of this document.
https://docs.google.com/document/d/1adppJ66vonM27UYwC-KyldXl7oZ_5Pb0/edit?usp=sharing&ouid=116281580550740302191&rtpof=true&sd=true

To summarise the differences from Makruk:
1. The game ends in a draw immediately when the counting limit is reached,
   instead of exceeded. This effectively reduces the counting limit by
   one move.

2. The condition for a player to start board's honour counting is having
   three pieces or less, regardless of the number of unpromoted pawns on
   the board.

3. When the condition for piece's honour counting is met, the counting
   player may choose not to go into it, and continue the board's honour
   counting instead. This is be implemented by automatically choosing
   the method that can reach the counting limit in less number of moves.

3 years agoAdd in-built support for Miguel Illescas' Dragon Chess. (#505)
Tord Romstad [Tue, 12 Jul 2022 18:56:54 +0000]
Add in-built support for Miguel Illescas' Dragon Chess. (#505)

3 years agoAdd in-built support for Raazuvaa (Maldivian Chess) (#503)
Belzedar94 [Tue, 28 Jun 2022 12:56:15 +0000]
Add in-built support for Raazuvaa (Maldivian Chess) (#503)

3 years agoImprove FEN validation (#497)
John Doknjas [Wed, 15 Jun 2022 17:45:17 +0000]
Improve FEN validation (#497)

3 years agoFix discovered check corner cases
Fabian Fichter [Wed, 8 Jun 2022 20:46:11 +0000]
Fix discovered check corner cases

3 years agoUpdate README.md
Fabian Fichter [Fri, 3 Jun 2022 11:31:35 +0000]
Update README.md

3 years agoUpdate 50 move rule for xiangqi
Fabian Fichter [Thu, 19 May 2022 18:12:47 +0000]
Update 50 move rule for xiangqi

Closes #405.

3 years agoImplement Variant::freeDrops (#486)
kz04px [Tue, 24 May 2022 21:58:22 +0000]
Implement Variant::freeDrops (#486)

For some games like Ataxx and Othello, specifying the pieces in hand is unnecessary. Setting freeDrops to true removes this from the FEN string.

3 years agoEnable NNUE for non-chess drop variants
Fabian Fichter [Sat, 21 May 2022 20:55:55 +0000]
Enable NNUE for non-chess drop variants

3 years agoDisable 50-move rule for ataxx
Fabian Fichter [Sat, 21 May 2022 18:15:49 +0000]
Disable 50-move rule for ataxx

3 years agoAdd flipello perft tests
Fabian Fichter [Sat, 21 May 2022 17:34:04 +0000]
Add flipello perft tests

No functional change.

3 years agoFixed Pandemonium, added Parahouse (new variant)
Snowmoondaphne [Sat, 21 May 2022 10:24:30 +0000]
Fixed Pandemonium, added Parahouse (new variant)

3 years agoAdd flipello to built-in variants
Fabian Fichter [Fri, 20 May 2022 11:59:09 +0000]
Add flipello to built-in variants

Also adjust NNUE code for othello and other non-chess variants.

3 years agoConvert protocol option to enum
Fabian Fichter [Mon, 16 May 2022 19:46:50 +0000]
Convert protocol option to enum

Closes #477.

3 years agoBump version
QueensGambit [Thu, 12 May 2022 16:40:59 +0000]
Bump version

3 years agoFix PGN parsing 960 variants (#474)
Bajusz Tamás [Thu, 12 May 2022 15:38:14 +0000]
Fix PGN parsing 960 variants (#474)

3 years agoPyffish wheels (#471)
Bajusz Tamás [Mon, 9 May 2022 16:34:46 +0000]
Pyffish wheels (#471)

3 years agoPyffish 0.0.72 (#469)
Bajusz Tamás [Fri, 29 Apr 2022 14:26:16 +0000]
Pyffish 0.0.72 (#469)

3 years agoSupport Xiangqi chasing rules
Fabian Fichter [Wed, 27 Apr 2022 21:27:36 +0000]
Support Xiangqi chasing rules

Add basic support for AXF chasing rules.
Some of the more complex cases are not handled yet.

Closes #55.

3 years agoUpdate README.md
Fabian Fichter [Tue, 26 Apr 2022 14:23:00 +0000]
Update README.md

3 years agoUpdate README.md
Fabian Fichter [Sun, 17 Apr 2022 10:13:39 +0000]
Update README.md

3 years agoIgnore carriage returns in INI parsing
Fabian Fichter [Sat, 16 Apr 2022 22:15:07 +0000]
Ignore carriage returns in INI parsing

3 years agoUpdate WASM repository URL
Fabian Fichter [Thu, 7 Apr 2022 20:56:38 +0000]
Update WASM repository URL

3 years agoBump ffish.js version
QueensGambit [Mon, 4 Apr 2022 17:54:20 +0000]
Bump ffish.js version

3 years agoFix quiet check move generation
Fabian Fichter [Mon, 4 Apr 2022 17:37:18 +0000]
Fix quiet check move generation

for mandatory piece promotions.

3 years agoBump pyffish version (#458)
Bajusz Tamás [Sat, 2 Apr 2022 20:05:07 +0000]
Bump pyffish version (#458)

3 years agoConsider king checks
Fabian Fichter [Tue, 29 Mar 2022 17:40:55 +0000]
Consider king checks

Affects bench due to pseudo-legal but illegal checks by kings.

bench: 6180480

Closes #451.

3 years agoFix shako castling
Fabian Fichter [Tue, 29 Mar 2022 18:20:29 +0000]
Fix shako castling

Consider pinned rook scenario like in chess960.

Closes #453.

3 years agoSupport checking of heredoc variant configs
Fabian Fichter [Fri, 1 Apr 2022 15:44:49 +0000]
Support checking of heredoc variant configs

Analogous to the loading of variant configs, also support checking
of configs specified directly in the CLI without an external file.

3 years agoSupport variant config parsing on CLI
Fabian Fichter [Mon, 28 Mar 2022 18:52:08 +0000]
Support variant config parsing on CLI

Use here-docs to load variant configurations from the CLI.

```
load <<EOF
[testvariant:chess]
somerule = somevalue
EOF
```