Press "mouse-left" button to move a piece. Release
"mouse-left" button on a piece on the same face and in the same row
(but not an adjacent piece or the move is ambiguous). The pieces will
then turn towards where the mouse button was released.
Press "mouse-center", or press "P" or "p" keys to toggle
the practice mode (in practice mode the record should say "practice").
One must double click on "mouse-center" if the puzzle is being worked
on. This is good for learning moves and experimenting.
Click "mouse-right", or press "R" or "r" keys to randomize
(this must be done first to set a new record). One must double click on
"mouse-right" if the puzzle is being worked on.
Press "I" or "i" keys to increase the number of "octas".
Press "D" or "d" keys to decrease the number of "octas".
Press "O" or "o" keys to toggle the orient mode. One has to
orient the faces in orient mode, besides getting all the faces to be the
same color. To do this one has to get the lines to be oriented in the
same direction, this only matters with center "octas", if at all (i.e.
those "octas" not on a corner or edge). This does add complexity so
there are 2 sets of records.
Press "3", "4", "B", or "b" keys (not the keypad
3, 4) to change modes to Period 3, Period 4, or Both.
Press "Y" or "y" to toggle sticky mode (increase/decrease is
disabled here if sticky mode is on).
"Sticky" and "Period 3" turning allows only the faces to turn. It is as
if the middle cut of the three cuts did not exist.
"Sticky" and "Period 4" turning allows only the points to turn, it is as
if the middle cut of the three cuts did not exist.
Beware, the "Sticky" mode is a hack and much could be done to improve its
look.
"S" or "s" keys reserved for the auto-solver (unimplemented).
Press "U" or "u" keys to undo move.
Press "G" or "g" keys to get a saved puzzle.
Press "W" or "w" keys to write or save a puzzle.
Press "Q", "q", or "CTRL-C" keys to kill program.
Use the key pad, "R" keys, or arrow keys to move without mouse clicks.
Key pad is defined for Pyraminx as:
/ Counterclockwise
7 8 9 Upper Left, Up, Upper Right
^
4<5>6 Left, Clockwise, Right
v
1 2 3 Lower Left, Down, Lower Right
Use the shift keys to access "Period 4" turns from "Both" mode, otherwise
it assumes "Period 3" turning. Points turn in "Period 4" and faces turn in
"Period 3".
Use the control key and the left mouse button, keypad, or arrow keys to
move the whole octahedron. This is not recorded as a turn.
The title is in the following format (non-motif version):
xoct.{3|4|both<turning modes>}: {1|2|3|4|5|6|sticky<number of "octas"
per edge>} @ (<Number of moves>/{<Record number of moves>
<username>|"NEVER noaccess"|"practice"}) - <Comment>
If there is no record of the current puzzle, it displays "NEVER noaccess".
The format is not standard. The reason for this is that this is simple and
I do not know what the standard is.
Octahedron with default colors, not randomized:
0 R Red
3 1 M B Magenta, Blue
2 W White
4 O Orange
7 5 Y P Yellow, Pink
6 G Green
size: 1-6 <number of triangles in the same orientation as the face per
row>
mode: 3-5 <period 3 turning, period 4 turning, or both (5)>
orient: 0-1 <0 false, 1 true; if 1 then lines on "octas" to be oriented>
sticky: 0-1 <0 false, 1 true; if 1 then some "octas" move together>
practice: 0-1 <0 false, 1 true>
moves: 0-MAXINT <total number of moves>
startingPosition: <2 dimensional array of face "octa" position, each
face has size * size "octas", if orient mode then orientation number
follows face number numbered clockwise from 0 to 11, where 0 is up>
This is then followed by the moves, starting from 1.
move #: <face> <position> <direction> <control>
Each turn is with respect to a face and position.
Position is 0 to size * size - 1. Position 0 is the triangle furthest
from the center, increasing clockwise.
Direction is represented as 0 up, 1 upper right, 2 right, 3 lower right,
4 down, 5 lower left, 6 left, 7 upper left, 9 clockwise, and 15
counterclockwise.
Control is represented as 0 or 1, 1 if the whole octahedron is moved at
once (here position does not matter), 0 if not. The xoct record keeper
does not count a control move as a move, but here we do.
Caution: the program may crash on corrupted input.