fairy-stockfish / Fairy-Stockfish

chess variant engine supporting Xiangqi, Shogi, Janggi, Makruk, S-Chess, Crazyhouse, Bughouse, and many more
https://fairy-stockfish.github.io/
GNU General Public License v3.0
626 stars 196 forks source link

Add sudoku chess variant #827

Open yusitnikov opened 2 months ago

yusitnikov commented 2 months ago

The PR introduces a new chess variant - "sudoku chess". In a few words, it's normal chess, but player is not allowed to capture opponent's pieces while player's pieces break 8x8 sudoku rules (i.e. there are repeating pieces of the same type in a file, rank or 4x2 box). Full rules reference: https://gist.github.com/yusitnikov/e81a5e4df2fce6a854db8a2950fa5cfc

Benchmark results:

Compatibility: I personally plan using the variant only with classic setup: 8x8 board, standard initial position, normal chess rules + sudoku. But theoretically, there's nothing in the variant implementation that prevents using it with:

Issues and potential improvements:

Sorry for a large PR! It's the smallest possible chunk of changes that will have a value for the variant support.

ianfab commented 1 month ago

Thanks for your PR. In view of the many open feature addition PRs and the huge backlog of maintenance tasks (e.g. releases, upstream merges) I unfortunately have to say though that I am currently fairly hesitant to add features that are quite specific to rare/exotic variants, so I will defer the decision on this PR for quite some time until maintainability is improved. I hope you understand.