xboard-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[XBoard-devel] Requested feature: variations


From: h.g. muller
Subject: [XBoard-devel] Requested feature: variations
Date: Thu, 05 Nov 2009 13:15:32 +0100

Someone suggested that XBoard should be able to remember the
main line of a game while allowing people to analyse variations
by moving the pieces around. (Like ICS examine mode.) Currently,
XBoard truncates the game when you make a move in EditGame
mode, and then appends your variation to it.

When I started thinking about this, it seems actually quite easy to
implement. In stead of truncating the game, the tail of the game
could be pushed on a stack (e.g. one growing down from the high
end of the boards array) in stead of erasing it, and otherwise
behavior could stay as it was. Then, when the user presses "revert"
(which became ungreyed as soon as something was pushed on the
stack), the currentMove is reset to the point of branching, and the
tail of the game is pushed from the stack. That is really all.

In addition, there could be a new feature "revert & remember",
which would append the variation from which you revert to the
comment of the first move of the popped 'main line'. This would
allow you to annotate PGN with variations, in a recursive way
(sub- and sub-sub-vritions, all commented).

In Analyze mode there should perhaps be a command to add the
engine score and depth to the comment. Something which happens
automatically only when the engine actually plays.

Now this is already pretty powerful, with minimal effort from our side,
but we could also provide the reverse functionality: If the PGN already
contains variations, which now are stored as comments, we could
provide a menu item "follow" that parses the chosen variation,
(there could be more than one for a given move), pushes the tail of
the main line onto the stack, and put the variation in its place.

As far as I can see, this should not be very difficult.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]