🕸💡📝Fergus Duniho wrote on Thu, Jan 5, 2006 10:13 PM UTC:
I missed the Rococo question when it was first posted. Since I didn't
write the Rococo preset and don't play the game myself, I can't answer
any specific questions on how the Rococo preset handles things. If the
preset doesn't enforce the rules, then you would have to manually remove
any piece captured by a means other than displacement. Dropping an @ on
the space will remove the piece, and so will moving the piece nowhere, as
in 'c4-'. A third way is with the capture command, as in 'capture
c4'.
I can answer your question on how Game Courier stores the board. It stores
it as an array, not as a bytemap. It is a one-dimensional array indexed to
coordinates. Dropping an @ clears a space, because that is the symbol it
actually uses for an empty space. This is an artifact of the intermediary
process of first converting the FEN code in the preset to an extended
string representing every space individually. Pieces are stored as the
symbols used to represent them, which are normally various letters of both
cases, though they may also be longer strings.
The style of notation used by Game Courier, which separates component
moves by semicolons, is due to the fact that Game Courier moves are all
actually entered as programming code. The - and * operators, which are
most commonly used for moves, are operators of the GAME Code programming
language. If you cared to, you could write complicated moves by writing
complex algorithms in the Move field. If you wanted to capture many pieces
at once, you could use the capture command with multiple arguments, each
argument a different coordinate. If you wanted to add the same piece to
multiple spaces, you could do it more quickly with the add command, as in
'add P all c1 c2 ...', where P is the piece, and all arguments following
the 'all' keyword are coordinates. A good automated preset should make
all this work invisible to the user, so that all he has to enter is a
single move, but Game Courier does allow people to create presets that
don't automate games in any way, and then players must do everything
manually.