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

Model multiple edits in the same "move" node #152

Open
dexonsmith opened this issue Feb 4, 2024 · 1 comment
Open

Model multiple edits in the same "move" node #152

dexonsmith opened this issue Feb 4, 2024 · 1 comment

Comments

@dexonsmith
Copy link
Contributor

dexonsmith commented Feb 4, 2024

From the forums:
https://forums.online-go.com/t/condense-edited-position-in-game-tree/50637

Currently OGS displays edited moves in the same way as regular moves. If you edit in multiple stones, each edited stone will show up as an individual move in the game tree. This makes it so if you make large edits to the board position or set up a problem on the board, it shows up as a long string of individual moves. This then makes it extremely confusing to navigate the game tree. Other programs will often condense all of these edits into a single icon on the game tree which greatly helps with tree navigation.

The GoEngine can't handle multiple edits in the same move node, so the first step is here in https://github.com/online-go/goban. This should be easy to add tests for, by parsing and/or dumping SGFs.

From the forum discussion:

  • ; indicates a new game tree node
  • B and W are moves.
    • They always require nodes, and show up as ;B and ;W in practice.
  • AB and AW indicate edits.
    • They do not require nodes and could be part of previous nodes.
    • ;AB[aa] is a new node with a black edit
    • ;AB[aa][ab] is a new node with two black edits
    • ;AB[ff][fg]AW[ef][eg]AB[fh] is a new node with five edits

EDIT: the follow-up to expose this in the analysis interface is online-go/online-go.com#2559.

@dexonsmith
Copy link
Contributor Author

My first impression is that this is not a small project, since (a) the parsers/etc. lack the concept of an edit without a move node and (b) any changes here need to be super-well tested (a mistake could break real games).

I do think this is tractable. I just think it's critical to get the testing right.

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

No branches or pull requests

1 participant