Extension to SGF File format
SGF file format is the de-facto standard of Go game files.
XuanXuanGo supports almost all of its properties, excepts for
drawing lines, arrows, and a handful of other properties which
XuanXuanGo deems to be unnecessary. Although SGF is very popular, it
has some limitations: no file description, no file type
information--is this an ordinary game file? or is it a joseki file?
or is it a problem file? Type information is important, as programs
use different ways to open files of different types. The properties
for each move in a game are not enough. XuanXuanGo introduces
file types to address above problems, and many new move properties for Go
problems, Joseki, and Go tutorial materials are added. The new file
format is called XGF (XuanXuanGo File), it's binary and more
efficient in storage uses.

From above dialog box, we can see XGF's file-level-extension of
SGF files:
- File type information.
- Internal file name, which can be comprised of several
sub-names, each sub-name in a new line.
- File description--annotation.
Here we need clarify the differences between the type "Lift and
death" and "Life and death games". The former is opened for
life-and-death practices, the latter, likes the "Games" type, except
that the child nodes will not be shown on the board and who will
play first will be shown on the game info area when the file is
opened, usually, each game in this type of files is a life-and-death
problem, but it can not be used to practice. You can set a file to any type
to see their differences.
The internal names appear on the game info pane and game select
dialog box.
Following is the move property dialog box:

As we can see, in addition to SGF's standard properties, such as 'Name', 'Move
Number', 'Good for black', 'Position even', etc., we added following
properties:
- Clear board. If the flag is set, the board will be cleared
if the move becomes current. This is much more efficient than
SGF's 'hide stone' command to achieve the same effect, which
we need use repeatedly to hide the stones on the board one by one.
- Show move numbers. If the flag is set, the move numbers will
always be shown when this move becomes current, no matter if the
game's option has chosen to show them or not.
- No auto show move number. If the move's comment text
contains digit number, XuanXuanGo will try to judge if it is
referring to a move number. If XuanXuanGo deems it's a move
number, move numbers will be shown on stones. Sometimes,
XuanXuanGo may misjudge and wrongly show the move numbers. By
using of this property, we can suppress the automatic showing of
move numbers for the move.
- Hide previous move number. If the flag is set, the move
numbers of previous moves will be hidden when this move or its
subsequent moves become the current move. We need hide the move numbers
of some stones , so that we can mark on them, the
marks won't be hidden by move numbers.
- Except. Let assume there are two diagrams in a book, one is
displaying move 1 to move 10 at move 10, the other displaying 8
to 18 at move 18. At move 10 and 18, we need use "Show move
numbers" if the move numbers are not shown automatically. If we
use "Hide previous move number" only, we can never show the move
numbers exactly like the diagrams in book, because the two
diagram's move numbers are overlapped. Here, we need use
"Except" property. On move 11,
we set the "Hide previous move number" with Except equals
3.
- Show coordinates. If the flag is set, the board coordinates
will always be shown when this move becomes current, no matter
if the game's option has chosen to show them or not.
- Jump to next comment. When we reach this move from last move
by 'Next' command or by rolling down the mouse wheel, the game
will go to latter move with a comment or the last move in
current path.
- Jump to prev comment. When we reach this move from next move
by 'Back' command or by rolling up the mouse wheel, the game
will go to previous move with a comment or the beginning of the
game.
Following properties are added especially
for Go problems:
- Right. When this move is reached, the problem's solution is
found. The shortcut toolbar button to set this flag is
.
- Wrong. Typically, we don't need to set this flag. When the
last move without Right flag being set is reached, XuanXuanGo
will show Wrong message automatically. However, if we want to
show the wrong message after we've reached this move and before
we reach the last move, we can use this flag. If the user keeps
moving after the wrong message has be shown, the application can
still response.
- Force. Means the user must play at one of the child nodes of
this move. Moving at any other place will be ignored. This flag
is often used to let the user make a choice among the child
moves that are marked by labels.
- Not this. If the user tries to play at nodes with 'Not this'
flag set, the system will ignore the move. This flag is often
used to prevent the user from moving at certain places. If you
don't want to provide the variation started with certain places,
just move to there and mark the move with 'Not this'.
- Reference. Sometimes we need include such variations showing
that computer's response here is wrong or week and while the
user is solving the problem, computer will not response at here.
The user can see the variation only under navigation state.
Obviously, Reference flag is set for computer moves, i.e. the
even number moves. If the move's sibling
moves can leads to a solution, then it's not necessary to set
this flag if this move won't lead to a solution, as the
system will automatically avoid moving here under non-navigation
state.
The joseki properties are added mainly for joseki playing back,
however, they can also be applied to ordinary games, as these
properties will be shown in the node lists and the nodes are
displayed on the board in different colors.

Unlike the ordinary node's properties, the root node's properties
defines the options for the game. This way you can set the game
options for reading when you're editing it.

|