Basic Operation
Resize the board by resizing the window.
Clicking on an empty hex makes a move at that hex.
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].
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 circle outline.
Losing moves are indicated by a single hex outline with a line across it.
Favorable moves are indicated by a large full circle and a smaller semicircle.
Unfavorable moves are indicated by a large circle with a small line in the middle.
Moves which lead to unknown results are indicated by a single circle outline.
Moves are classified into winning, losing, favorable, unfavorable and unknown according to
the information contained in the tree.
Jhex does not understand the rules of hex 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 left 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 filled hex 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 Jhex 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.
Rotate current node
Rotates the current node and all of its descendants.
Useful for combining equivalent first moves (e.g. A2 and J9 on a 10x10 board).
Does nothing if rotating doesn't make sense
(i.e. only nodes allowed are root, first moves, and second moves if the
first move was at the exact center of the board.)
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 tier 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, move number status, and colors
of this board the default for future new boards.
Import game records...
This opens up a window which allows you to import game records
from various formats.
Formats currently supported are Playsite, 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:
- Playsite format.
Playsite game records
should start before the '---HISTORY---' line and end after the 'xxxx wins'
line (if present).
- PBeM format.
PBeM game records should start before the 'Vert Horz'
line and end after the line beginning '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 all 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
Rotates the board (and also grid labels).
Flip Board
Flips the board (and also grid labels).
Rotate Grid Labels
Rotates the grid labels (board stays fixed).
Flip Grid Labels
Flips the grid labels (board stays fixed).
Show Grid Labels
Toggles whether grid labels are shown.
Show Move Numbers
Toggles whether move numbers are shown.
Non-funky hexes
Toggles between the exciting irregular hex mode and the boring
round hex mode.
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.