# xoct

## SYNOPSIS

           /usr/games/xoct                                              [-geometry
           [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]]                 [-display
           [{host}]:[{vs}]]   [-[no]mono]   [-[no]{reverse|rv}]  [-{foreground|fg}
           {color}] [-{background|bg}  {color}]  [-face{0|1|2|3|4|5|6|7}  {color}]
           [-{border|bd}  {color}]  [-delay msecs] [-[no]sound] [-moveSound {file-
           name}] [-{font|fn} {fontname}] [-{size {int} | sticky}] [-{mode {int} |
           both}]  [-[no]orient]  [-[no]practice] [-userName {string}] [-scoreFile
           {filename}] [-scores] [-version]

## DESCRIPTION

           The original puzzle has 9 triangles per face (size = 3) and has  period
           4 turning (i.e. the face or points turn with 90 degree intervals).  The
           puzzle was designed by Uwe Meffert and called the Magic Octahedron  (or
           Star  Puzzler).   The puzzle was not widely distributed but not exactly
           rare.  This puzzle has some analogies to the Rubik's Cube and the solv-
           ing techniques are the same to that of the Pyraminx.  Christoph's Magic
           Jewel is similar except there are no trivial corners  to  solve.   This
           has 2^22*12! or 2,009,078,326,886,400 different combinations.

           Uwe  Meffert also noticed that there could be an alternate twisting for
           the octahedron where it has period 3 turning (i.e. faces turn with  120
           degree intervals).

           One  is  able  to simulate a Trajber's Octahedron (period 3 turning and
           sticky mode).  Also one is able to simulate one  with  variant  turning
           (period 4 turning and sticky mode).

## FEATURES

           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.

           Click "mouse-center", or press "P" or "p" keys to toggle  the  practice
           mode (in practice mode the record should say "practice").  This is good
           for learning moves and experimenting.

           Click "mouse-right", or press "R" or "r" keys, to randomize the  puzzle
           (this must be done first to set a new record).

           Press "G" or "g" keys to get a saved puzzle.

           Press "W" or "w" keys to save (write) a puzzle.

           Press "U" or "u" keys to undo a move.

           Press "R" or "r" keys to redo a move.

           Press "C" or "c" keys to clear the puzzle.

           "S"  or "s" keys to start auto-solver.  Only works on 1x1x1, 2x2x2, and
           3x3x3 facets in Period 4 mode.

           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" keys to toggle sticky mode (increase/decrease is  dis-
           abled 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.

           Press "I" or "i" keys to increase the number of pieces.

           Press "D" or "d" keys to decrease the number of pieces.

           Press ">" or "." keys to speed up the movement of  pieces  (not  imple-
           mented).

           Press  "<"  or "," keys to slow down the movement of pieces (not imple-
           mented).

           Press "@" key to toggle the sound.

           Press "Esc" key to hide program.

           Press "Q", "q", or "CTRL-C" keys to kill program.

           Use the key pad or arrow keys to move without the mouse.
           Key pad is defined for Oct 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,  other-
           wise  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> <user name>|"NEVER noaccess"|"practice"}) - <Comment>
           If  there  is no record of the current puzzle, it displays "NEVER noac-
           cess".

## OPTIONS

           -geometry {+|-}X{+|-}Y
                   This option sets the initial position of the octahedron  window
                   (resource name "geometry").

           -display host:dpy
                   This option specifies the X server to contact.

           -[no]mono
                   This  option  allows  you  to display the octahedron on a color
                   screen as if it were monochrome (resource name "mono").

           -[no]{reverse|rv}
                   This option allows you to see the octahedron window in  reverse
                   video (resource name "reverseVideo").

           -{foreground|fg} color
                   This  option  specifies the foreground of the octahedron window
                   (resource name "foreground").

           -{background|bg} color
                   This option specifies the background of the  octahedron  window
                   (resource name "background").

           -face{0|1|2|3|4|5|6|7} <color>
                   This  option allows you to change the color of a face (resource
                   name "faceColorN"). In mono-mode, color is represented  as  the
                   first  letter  of  the color name. The faces are ordered top to
                   bottom and left to right.  If you has  two  colors  that  begin
                   with  the  same letter you should have one in uppercase and one
                   in lowercase to distinguish them in mono-mode. You  can  change
                   the  colors  of the faces to make a stupid octahedron (i.e. all
                   White or in mono-mode all "W").   Unfortunately,  it  will  not
                   normally  say  its  solved  when its randomized.  This would be
                   cheating.

           -{border|bd} color
                   This option specifies the border color  of  the  octas  in  the
                   octahedron window (resource name "borderColor").

           -delay msecs
                   This  option  specifies  the number of milliseconds it takes to
                   move pieces (1-50) (resource name "delay").

           -[no]sound
                   This option specifies if sliding pieces should make a sound  or
                   not (resource name "sound").

           -moveSound filename
                   This  option  specifies  the  file  for  the move sound for the
                   twisting of the puzzle (resource name "moveSound").

           -{font|fn} ontname
                   This option specifies the font that will be used (resource name
                   "font").

           -size <int>
                   This  option allows you to change the number of octas on a edge
                   (resource name "size").

           -sticky This option allows you to set the sticky  mode  (resource  name
                   "sticky").

           -mode <int>
                   This  option  allows you to set the turning mode (resource name
                   "mode").

           -both   This option allows you to set the turning mode to both period 3
                   and period 4 (resource name "mode" set at 5).

           -[no]orient
                   This option allows you to access the orient mode (resource name
                   "orient").

           -[no]practice
                   This option allows you to access the  practice  mode  (resource
                   name "practice").

           -userName string
                   This  option  specifies  the  user name for any records made or
                   else it will get your login name (resource name "userName").

           -scoreFile filename
                   Specify an alternative score file (resource name  "scoreFile").

           -scores This option lists all the recorded scores and then exits.

           -version
                   This option tells you what version of xoct you have.

## RECORDS

           You  must  randomize  the  puzzle  before a record is set, otherwise an
           assumption of cheating is made if it  is  solved  after  a  get  or  an
           auto-solve.

## SAVE FORMAT

           Here  is  the format for the xoct configuration, starting position, and
           the movement of its pieces.

           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  orienta-
                  tion 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.

## REFERENCES

           Beyond  Rubik's  Cube:  spheres,  pyramids, dodecahedrons and God knows
           what else by Douglas R. Hofstadter, Scientific American, July 1982,  pp
           16-31.

           Magic Cubes 1996 Catalog of Dr. Christoph Bandelow.

## SEE ALSO

           X(1),  xcubes(6),  xtriangles(6),  xhexagons(6), xmlink(6), xbarrel(6),
           xpanex(6), xmball(6),  xpyraminx(6),  xrubik(6),  xskewb(6),  xdino(6),
           xabacus(6)

## COPYRIGHTS

           (R) Copyright 1994-2010, David A. Bagley

## BUG REPORTS AND PROGRAM UPDATES

           Send bugs (or their reports, or fixes) to the author:
                  David A. Bagley, <bagleyd@tux.org>

           The latest version is currently at:
                  http://www.tux.org/~bagleyd/puzzles.html
                  ftp://ibiblio.org/pub/Linux/games/strategy

    V7.6                              21 Jan 2010                          XOCT(6)