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:

  1. File type information.
  2. Internal file name, which can be comprised of several sub-names, each sub-name in a new line.
  3. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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:
  1. Right. When this move is reached, the problem's solution is found. The shortcut toolbar button to set this flag is .
  2. 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.
  3. 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.
  4. 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'.
  5. 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.

上一页 下一页