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:
- PBeM format.
PBeM game records should start
before 'O (vert)...' and end after the line starting 'A B C ...'.
- 'Simple' format.
Looks for a sequence of letter-number coordinates ("A2 E7 J12 ...").
Move numbers between the coordinates are allowed ("1 A2 2 B3 3 C4",
"1. A2 2. B3 3. C4" and "1. A2 B3 2. C4 D5 3. F7" are all acceptable).
Moves and move numbers (if present) should be separated by white space
(spaces, tabs, returns or new-lines).
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.