Support wall squares (#565)
authorFabian Fichter <ianfab@users.noreply.github.com>
Sat, 14 Jan 2023 15:37:01 +0000 (16:37 +0100)
committerGitHub <noreply@github.com>
Sat, 14 Jan 2023 15:37:01 +0000 (16:37 +0100)
commit873e76a4983af174019413a3d940a0ecd0933587
tree339f8457e0532a72f4e105391ecea10e506ebf3d
parent29ae8b76118db6d9a71357c8ca127142e2d38c33
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.
22 files changed:
README.md
setup.py
src/Makefile
src/Makefile_js
src/apiutil.h
src/movegen.cpp
src/movepick.cpp
src/movepick.h
src/nnue/features/half_ka_v2_variants.cpp
src/parser.cpp
src/position.cpp
src/position.h
src/search.cpp
src/thread.cpp
src/thread.h
src/types.h
src/uci.cpp
src/ucioption.cpp
src/variant.cpp
src/variant.h
src/variants.ini
tests/perft.sh