Basic Operation

Resize the board by resizing the window.

Clicking on an empty hole places a peg in that hole and adds all available links to that peg.

Control-clicking on an empty hole places a peg in that hole and enters "manual linking mode". Subsequent clicks on links remove the link. Subsequent clicks on pegs place all available links to that peg. Control-clicking again anywhere on the board completes the move.

Initially, two subsidiary windows will appear: a window which shows the comments for each node, and a windows which shows the game history (text representation of the moves). These windows may be hidden when you first start the program. You can position and/or hide them, then select the "Make These Windows Default" item of the "Misc" menu to save those locations/visibilities as the default.

The "Vertical wins" button labels the current position as a win for vertical. (If the board has been flipped, this means the player that is vertical according to the current display orientation.) Similar things are true for the "Horizontal wins" button.

The "Vertical advantage" ["Horizontal advantage"] button labels the current position as one favorable to Vertical [Horizontal]. The "Tie" button labels the current position as a tie.

Labels of non-final (non-twig) nodes of the game tree are ignored.

At each board position follow-up moves contained in the game tree are displayed. Winning moves are indicated by a double upward-pointing triangle outline. Losing moves are indicated by a double downward-pointing triangle outline. Favorable moves are indicated by a single upward-pointing triangle outline. Unfavorable moves are indicated by a single downward-pointing triangle outline. Tying moves are indicated by a double circle outline. Moves which lead to unknown results are indicated by a single circle outline.

Moves are classified into winning, losing, favorable, unfavorable, tying and unknown according to the information contained in the tree. Jtwixt does not understand the rules of Twixt and so depends on your labeling final positions in the tree with the "Vertical wins", "Horizontal advantage", etc. buttons. Only the labels of final positions ("twigs" of the game tree) are used for evaluating non-final positions -- labels of non-final positions are ignored.

The color of the random blob in the upper right corner of the board display indicates whose turn it is.

The vertical or horizontal non-random shape in the lower right corner of the board display indicates a winning position for vertical or horizontal. (If the status of the position is unknown, then no shape appears.)

The yellowish dot indicates the last move played.

Shift-clicking on a peg takes you back to that move.

The "Start <-" button takes you back to the root of the game tree.

The "Branch <-" button takes you back to the most recent branch node.

The "Back" button takes you back one move.

The "Forward" button takes you forward one move.

The "-> Branch" button takes you forward to the next branch node.

The "-> End" button takes you forward to the end of the end of a variation.

The above six functions are also available under the "Move" menu and as keyboard shortcuts. See the "Move" menu documentation below for details on how the "Forward" and "-> End" functions choose among multiple continuations.


File Menu

Save as...

Prompts for a file name, then saves the game tree to that file.

Save

If the tree has been previously read from or saved to a file, saves to that file. Otherwise it's equivalent to "Save as...".

Open...

Opens a file. The file should be in Jtwixt format. If the current game tree has not been saved, you will be asked whether you want to save it. (See below for importing text game records.)

New Frame

Opens a new frame.

Clone Frame

Opens a new frame which displays the same underlying game tree as the current frame. Changes made in the new frame will also be reflected in the old game tree (because they are in fact the same tree).

Copy Subtree to New Frame

Opens a new frame (window) and places a copy of the current subtree into it. "Current subtree" means all ancestors and all descendants of the current node. This is useful if you want to extract particular variations from a large library of games.

Quit

Quits. If there are unsaved game tress in any frame, you will be asked whether you want to save them.

New board of size...

Resets the current frame to a new board of the specified size. If the current game tree has not been saved, you will be asked whether you want to save it.

Move Menu

Forward

Go forward one move. If there are multiple continuations in the tree, first priority is given to the best moves (winning > unknown > losing), and second priority is given to the most recent move added to the tree. (Also right arrow key.)

Back

Go backward one move. (Also left arrow key.)

Forward to Branch

Go forward until the next branch (node with multiple continuations) in the tree. (Also down arrow key.)

Backward to Branch

Go backward until the previous branch in the tree. (Also up arrow key.)

Backward to Non-Branch

Go backward until just before the previous branch in the tree. (This is useful because after "Backward to Branch" it is sometimes difficult to find the variation you just left.) (But there's now another alternative -- see "Retrace" below.)

Forward to End

Go forward until a twig (node with no continuations) is reached. When choosing among multiple continuations, same priorities as in the "Forward" menu item above. (Also "end" key.)

Back to Start

Go back to the start (root) of the tree. (Also "home" key.)

Next twig

Go to the next twig. Wraps around after reaching the last twig.

Next NV twig

Go to the next twig which does not have a value assigned to it. (A value is "vertical wins" or "horizontal wins".) Useful for tracking down the unlabeled twigs.

Next node

Go to the next node. After last node wraps around to first node. The order of the nodes is defined recursively as: node, then all of its children plus their descendants in the order the first generation children were added to the tree.

Main next

Go forward one move in the "main" variation. (See below for designating main variations.)

Main to end

Go to the end of the "main" variation. (See below for designating main variations.)

Delete current node

Delete the current node and all fo its descendants. Warns if this would delete more than one node (i.e. if there are more than zero descendants).

Retrace

Go back to the previously viewed position. This is similar to the "back" button in a web browser. Useful for finding your way back after "Back to branch", "Back to start", "Next twig", etc.

Unretrace

Undoes the effects of "Retrace". This is similar to the "forward" button in a web browser.

Next comment node

Go to the next node that has comment text. I added this so that I could track down and delete accidental typo comments.

Next comment node containing...

Opens a window which allows you to search for a node with comment text containing a given substring.

Make this main variation

Designate this move as the "main" variation from the previous board position. This is useful for distinguishing the actual moves of a game from alternate variations.

Main variation to branch

Designate this node and all of its ancestors as the main variation, until a branch node is reached.

Main variation to root

Designate this node and all of its ancestors as the main variation, all the way back to the root of the tree.

Reflect current node horizontally

Horizontally reflects the current node and all of its descendants. Useful for combining equivalent first moves (e.g. D5 and U5 on a 24x24 board). Does nothing if reflecting doesn't make sense (i.e. only nodes allowed are root, first moves, and second moves if the first move was at the exact vertical center line of the board.) [Bug: Should also allow case where all previous moves were on vertical center line.]

Reflect current node vertically

Vertically reflects the current node and all of its descendants.

Misc menu

Go to bookmark

Go to a bookmark (node in current tree). Useful for jumping rapidly between related parts of a tree. (See also "Clone Frame" above.) Unfortunately, bookmarks are not saved to disk with the tree, so they have to be reset each time. This may be fixed in a future version.

Set bookmark

Assign the current node to a bookmark number.

Stats for entire tree

Display (a) total nodes, (b) total twigs (distinct game variations), and (c) unlabeled nodes for the entire tree.

Stats for this node

Display (a) total nodes, (b) total twigs (distinct game variations), and (c) unlabeled nodes for subtree below (and including) current node.

Merge trees...

Merge the game tree of another frame into the game tree of the current frame. Useful for adding games to a game library. It is more efficient to merge small trees into larger ones rather than the other way around (i.e. the current frame should contain the larger tree).

Merge and mark trees...

Similar to "Merge trees..." above, except that new nodes and nodes whose value changed as a result of the merge are marked in their comment text. You can use "Next comment node" in the move menu to locate these nodes after the merge. (Eventually, I plan to merge the two "Merge trees" functions into a single one which allows you to choose which nodes, if any, are marked. An alternative to marking is to compare the trees (see next menu item) and then merge them without marking anything. This is what I usually do.)

Compare trees...

This opens a window for finding the differences between two game trees. Select the two trees you want to compare via the "A" and "B" pop-up menus. (You should have at least two game tree windows open before trying to compare trees.) The "Find value differences" checkbox locates nodes common to both trees, but which have different values in the two trees. The "Find nodes in B, not in A" checkbox locates nodes common to the two trees, but which have B-children not found in tree A. "Find nodes in A, not in B" is similar. Clicking the "Find next difference" button moves both game tree windows to the next common node matching the selected criteria. If possible, position the two game tree windows so that both are visible at the same time. (This function is useful when you have a large library of games, and you want to merge some new games into it. This function allows you to preview the changes that would be made to the library.)

Show comment window

Three choices: "Always" - The comment window is always visible. "Sometimes" - The comment window is only visible when its associated game tree window is frontmost. (This is the default.) "Never" - The comment window is always hidden. Note that closing the comment window changes its visibility status to "Never".

Show history window

Three choices: "Always" - The history window is always visible. "Sometimes" - The history window is only visible when its associated game tree window is frontmost. (This is the default.) "Never" - The history window is always hidden. Note that closing the history window changes its visibility status to "Never".

Point of view

Three choices: "Alternate" - Winning and losing moves are indicated from the point of view of the player whose turn it is to play. (This is the default.) "Player 1" - Winning and losing moves are always indicated from Player 1's point of view. For example, a bad move made by Player 2 would be indicated as a winning (for Player 1) move. "Player 2" - Opposite of the "Player 1" option.

Make These Windows Default

Save to the preferences file the size and location of the main, comment and history windows. Also saves the visibility status ("Always", "Sometimes" or "Never") of the comment and history windows. Subsequent new windows will have these defaults.

Make current board default

Makes the size, grid label status and colors of this board the default for future new boards.

Import game records...

Import game records from PBeM email format. Paste (control-v, command-v, or whatever the usual shortcut for pasting is on your platform) the game record text into the window that pops up. Select either single game or multiple games. Press the "**Import**" button. For single game mode, extracts only the first game found and records the player names. For multiple game mode, extracts all games whose board size matches the board size of the first game found ("automatic" mode) or the specified board size; no player names are recorded. Pasted game record should start before 'O (vert)...' and end after the line starting 'A B C ...'. Including extra text is OK.

Import game records...

This opens up a window which allows you to import game records from various formats. Formats currently supported are PBeM and 'Simple' (see below). Select the format with the first pop-up menu. Select either single game or multiple games with the second pop-up menu. For single game mode, extracts only the first game found and records the player names. For multiple game mode, extracts all games whose board size matches the board size of the first game found ("automatic" mode) or the specified board size; no player names are recorded. (For 'Simple' format, a specific board size must be selected.) After the above settings have been made, either (1) click the "*Import from file*" button to import from a file, or (2) paste (control-v, command-v, or whatever the usual shortcut for pasting is on your platform) the game record text into the window and click the "*Import from window*" button.

Format notes:

In both of the formats, including extra text is OK. (For example, you could paste in an entire email message which contains a game record.) Game records should have some white space both before and after them.


Board menu

Rotate Board 180

Rotates the board 180 degrees (and also grid labels).

Rotate Board 90

Rotates the board 90 degrees counter-clockwise (and also grid labels).

Flip Board

Reflects the board and grid labels across the upper-left-to-lower-right diagonal.

Rotate Grid Labels 180

Rotates the grid labels 180 degrees (board stays fixed).

Rotate Grid Labels 90

Rotates the grid labels 90 degrees counter-clockwise (board stays fixed).

Flip Grid Labels

Reflects the grid labels across the upper-left-to-lower-right diagonal (board stays fixed).

Show Grid Labels

Toggles whether grid labels are shown.

Show Guide Lines

Toggles whether guide lines are shown.

Next Move Style

This selects the way the values of next moves are indicated 'Default' -- triangles and circles, as described above. 'Text' -- '+' for winning and favorable moves, '-' for losing and unfavorable moves, '=' for even/tying moves, and '?' for undetermined moves.

Adjust colors...

Pop up a window for adjusting board colors. Once you have them the way you like them they can be saved in a preferences file.

Cancel 'long' move

Cancel a 'long' (manual link placement) move if one is in progress.