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:

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.