Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Are RAVs(Recursive Annotation Variation) in PGN possible? #72

Open
coffeeDev98 opened this issue Dec 20, 2021 · 4 comments
Open

Are RAVs(Recursive Annotation Variation) in PGN possible? #72

coffeeDev98 opened this issue Dec 20, 2021 · 4 comments
Labels

Comments

@coffeeDev98
Copy link

@brozeph Is it possible to create move variations using this package...?

@brozeph
Copy link
Owner

brozeph commented Jan 3, 2022

@coffeeDev98, thank you for your question above... can you explain more about how you'd like this feature to work?

@brozeph
Copy link
Owner

brozeph commented Jan 5, 2022

Found the following resource regarding RAV: http://www.saremba.de/chessgml/standards/pgn/pgn-complete.htm#:~:text=An%20RAV%20(Recursive%20Annotation%20Variation,to%20represent%20an%20alternative%20variation.

Effectively, the important parts:

An RAV (Recursive Annotation Variation) is a sequence of movetext containing
one or more moves enclosed in parentheses.  An RAV is used to represent an
alternative variation.  The alternate move sequence given by an RAV is one that
may be legally played by first unplaying the move that appears immediately
prior to the RAV.  Because the RAV is a recursive construct, it may be nested.

*** The specification for import/export representation of RAV elements needs
further development.

The part that concerns me is the last statement with asterisks... sounds like the spec is not yet complete (plus I'm having a hard time finding much guidance on how to produce the output properly).

@Piterden
Copy link
Collaborator

Piterden commented Jan 9, 2022

@coffeeDev98 this library is the engine which takes chess moves one by one and shows to you possible moves after each your move. Also, it detects the state of chess game (check, checkmate, repetition, etc.) after each move sequentially and store position of pieces on the board after each too. It is like just a chess board, not AI engine.

In context of a chess game and in its rules there's no way to make move variation trees. Even there's no case for use them.

You'd probably need some PGN-editor

@coffeeDev98
Copy link
Author

@brozeph @Piterden Thanks for the responses! Yes, It is not to be used in a gameplay scenario where the use cases of this package mainly lie in. Was looking to see if it was possible to use this for analytical purposes as well, with a possibility to create variations.
There's not much info on the implementation of variations so it's hard to figure how to go through with the implementation and finding a structure, given the infinite possibilities of variations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants