Comments (5)
During the implementations I tried to maintain the "UCI_Chess960" option as a universal flag to switch between normal and 960-style shuffling variants, so I expect it to work also for variants like Crazyhouse, Losers, and S-Chess, as well as for large-board variants. So far I however did not really test this feature, except for caparandom/CRC, which is implemented as a separate variant (although under the hood it is just capablanca chess + 960 flag) to be compatible with GUIs.
However, for variants with castling of non-royal kings (giveaway, extinction, etc.) the 960 option will not work, because of the difficulty to identify the king-like castling piece when there can be more than one (would perhaps require an FEN extension, e.g., providing the king file in the castling field). Currently it just assumes the pseudo-king to be on the e-file, which of course does not work for 960 positions.
from fairy-stockfish.
If I understand correctly I can use "UCI_Chess960" for pychess-variants seek creation dialog (as an optional 960 [x] checkbox) for Standard, Crazyhouse, Capablanca, and S-chess.
I'm not sure about adding this option to oriental variants (Makruk, Shogi, Xiangqi). Can it be interesting? Or is it meaningless?
Thx for the explanation anyhow!
from fairy-stockfish.
The GUI is usually responsible for generating the starting position in shuffle variants, the engine only supports playing a given position, so just adding the option does not change anything apart from the protocol (castling move and FEN notation). Python-chess for example supports generation of chess960 FENs, but I do not know about any caparandom starting position generator. As a very simple approach one could just randomly shuffle the pieces on the back rank and repeat it until the king is between the rooks and the bishops are on different colors, which does not even require knowledge about the game (can be done just based on the FEN string).
The "UCI_Chess960" option only makes sense for variants that use castling, because otherwise the rules of the game do not depend on the starting position, so there is no need for the engine to distinguish. Shuffle variants of games without castling is basically nothing else then a kind of "start from position" feature.
from fairy-stockfish.
Yes, I know that GUI is responsible for generating starting position. I added it to PyChess GUI years ago.
I completely forgot that oriental variants has no castling at all so this solved quickly :)
from fairy-stockfish.
Ah, I was not aware that you already have it, especially not for caparandom. In that case there should indeed not be much more to do than just setting the 960 option.
from fairy-stockfish.
Related Issues (20)
- Make All the Variants Defined in a .ini File instead of Other Types of Files HOT 1
- Support Go HOT 2
- Betza notation half-plane modifier produces wrong moveset
- Fair-Stockfish 14 in WinBoard: Illegal move "O-O" (rejected by first chess program) HOT 1
- Ambiguity between Gating Files and Kingside Castling Rights in FEN HOT 2
- Support for color specific letters
- Simultaneous Kings HOT 2
- Need help about HashingKey of XiangQi's opening book (.obk) HOT 2
- When will have new version ?
- Better Documentation of Extinction
- extinctionPseudoRoyalExtended
- Support Spell Chess HOT 1
- xiangqi train HOT 1
- template 'xiangqi' does not exist HOT 2
- Support Backgammon
- Build wheels fails
- promotion region depending on piece type HOT 1
- Support CheckShogi HOT 4
- Adjudicate attax games when board is full HOT 1
- Support Cylinder Chess HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fairy-stockfish.