I think a lot of people have spent a lot of time struggling with the old
repertoire and mask features trying to get something like Chess Position
Trainer functionality out of the various SCIDs over the years, without
much success. Here are some thoughts about how this might be approached
in a totally different way.
SCIDvsPC already has the ability to apply the tree from one database to
the games of another. So, you don't actually need a special repertoire
or mask file. To get the same effect, you just need a database that
contains only the repertoire lines.
You could almost do this now but creating such a "database of lines" is
a pain. It looks like this should be easy when you first look at the
Tree window but it isn't. The speed of the Tree Window contributes to
this impression because it makes it look like the tree is persistent
data rather than calculated on the fly.
The first obstacle everyone encounters is that the tree window isn't
editable - you can't add and delete moves ('prune the tree') directly.
The second problem is that as you browse the Tree, you can't see
comments and NAGs at the current position because only one game is
loaded at a time.
My suggestion would be to create a special database that holds only
moves, comments and NAGs. Even the usual PGN headers are irrelevant as
we are not storing real games, just lines. Similarly, there is no need
for variations - each line is stored as a separate game. At any given
position when the user adds a move, check if we are at the end of an
existing game/line - if so append the move and save. If not,
automatically create a new game that includes the moves to this point
and then adds the new move and saves. Transpositions are irrelevant as
the tree effectively hides this anyway.
The important point is that this is still just a regular SCID base but
you are exploiting the speed of the Tree functionality to make it look
like something quite different. This "Repertoire" could have a special
extension to prevent it being opened as a regular database even though
it really is just a simple DB.
The difficult part is that this would require a whole new interface
window that borrows features from the existing Tree, PGN and Comments
windows. You would need to create an "Edit Repertoire Tree" window that
would allow the user to step forwards and backwards through the "tree"
and display/edit moves, comments and NAGs at the current position. It
would also need to provide the ability to add and delete moves. You
don't need to show any of the statistics from the current tree window,
nor do you need to show a game list.
|