SYNOPSIS

       /usr/games/xrubik                                            [-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}   {color}]
       [-{border|bd}  {color}]  [-delay  msecs] [-{font|fn} {fontname}] [-view
       {int}] [-size{x|y|z} {int}]  [-[no]orient]  [-[no]practice]  [-userName
       {string}] [-scoreFile {filename}] [-scores] [-version]


DESCRIPTION

       The  original puzzle has 9 squares per face (size = 3).  The puzzle was
       designed  by  Erno  Rubik  and  called  the  Rubik's  Cube.   This  has
       8!*12!*3^8*2^12/12 or 4.3 * 10^19 different combinations.

       The Pocket Cube has 4 squares per face (size = 2) also designed by Erno
       Rubik.  This has 7!*3^6 or 3,674,160 different combinations.

       Rubik's Revenge has 16 squares per face (size =  4)  also  designed  by
       Erno  Rubik.   This  has 7!*3^6*24!*24!/(4!)^6 or 7.4 * 10^46 different
       combinations.

       5x5x5 Cube.  This has 8!*12!*3^7*2^10*(24!)^3/(4!)^12 or 2.83  *  10^74
       different combinations.

       There  is  also  the  Magic  Domino  3x3x2  cube  which has (8!)^2/4 or
       406,425,600 combinations.

       A physical 6x6x6 cube is possible but to my knowledge no one  has  been
       too  successful  in building one.  7x7x7 is also possible, but here one
       must make the center most cubes smaller than the outside cubes, so  the
       corners do not fall off when turned.


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.  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 "Z" or "z" 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 "D" or "d" keys to decrease the number of "cubies".

       Press "x" key to increase the number of "cubies" along the x axis.

       Press "X" key to decrease the number of "cubies" along the x axis.

       Press "y" key to increase the number of "cubies" along the y axis.

       Press "Y" key to decrease the number of "cubies" along the y axis.

       Press "f" key to increase the number of "cubies" along the z axis.

       Press "F" key to decrease the number of "cubies" along the z axis.

       Press "V" or "v" keys to change the view of the cube.

       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 the Rubik2d as:
         /     Counterclockwise

         8     Up
         ^
       4<5>6   Left, Clockwise, Right
         v
         2     Down

       Key pad for Rubik3d, use must use your intuition (is this a cop out  or
       what?).   The key pad is defined differently depending on which side of
       the cube your mouse is pointing at.  One thing that stays the  same  is
       "5" is Clockwise and "/" is Counterclockwise.

       Use the control key and the left mouse button, keypad, or arrow keys to
       move the whole cube.  This is not recorded as a turn.

       The title is in the following format (non-motif version):
              xrubik{2|3}d<dimension>:  {1|2|3|4|5|6<cubes  per  edge  on   x-
              axis>x{1|2|3|4|5|6<cubes  per edge on y-axis>x{1|2|3|4|5|6<cubes
              per edge on z-axis>} @ (<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  rubik  window
               (resource name "geometry").

       -display host:dpy
       -{background|bg} color
               This option  specifies  the  background  of  the  rubik  window
               (resource name "background").

       -face{0|1|2|3|4|5} <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. On the 2-D version, the faces
               are ordered top to bottom and left to right on the "t" configu-
               ration.  The  sideways  "t" or "+-" configuration is physically
               consistent with the former, so it is ordered "0, 1,  2,  3,  5,
               4".   If you has two colors that begin with the same letter you
               should have one in uppercase and one in  lowercase  to  distin-
               guish them in mono-mode. You can change the colors of the faces
               to make a stupid cube (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 "cubies"  in  the
               rubik window (resource name "borderColor").

       -delay msecs
               This  option  specifies  the number of milliseconds it takes to
               move a tile or a  group  of  tiles  one  space  (resource  name
               "delay").

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

       -view <int>
               This option allows you to change  the  view  of  the  cube  for
               OpenGL with choice of 4 views (resource name "int").

       -sizex <int>
               This  option  allows  you to change the number of "cubies" on a
               edge along x-axis (resource name "sizex").

       -sizey <int>
               This option allows you to change the number of  "cubies"  on  a
               edge along y-axis (resource name "sizey").

       -sizez <int>
               This  option  allows  you to change the number of "cubies" on a
               edge along z-axis (resource name "sizez").

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

       -[no]practice


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

       The format is not standard.  The reason is that this is simple to  pro-
       duce  and  the  standard  notation  is  no  good for variable number of
       "cubies".

       Rubik2d with default colors, not randomized (front is face 2) :
         0       R     Red
       1 2 3   Y W G   Yellow, White, Green
         4       O     Orange
         5       B     Blue

              sizex: 1-6 <the number of cubes per row along x-axis>
              sizey: 1-6 <the number of cubes per row along y-axis>
              sizez: 1-6 <the number of cubes per row along z-axis>
              orient: 0-1 <0 false, 1 true; if 1 then lines on "cubies" to  be
              oriented>
              practice: 0-1 <0 false, 1 true>
              moves: 0-MAXINT <total number of moves>

              startingPosition:  <2  dimensional array of face and cubie posi-
              tion, each face has size * size "cubies", if  orient  mode  then
              orientation  number  follows face number: 0 up, 1 right, 2 down,
              and 3 left>

       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 in the upper left.
       Direction is represented as 0 up, 1 right, 2 down, 3 left, 5 clockwise,
       and 7 counterclockwise.
       Control  is represented as 0 or 1, 1 if the whole cube is moved at once
       (here position does not matter), 0 if not.  The  xrubik  record  keeper
       does not count a control move as a move, but here we do.

       If  you have a Rubik's Cube you can not solve (2x2x2 or 3x3x3) enter it
       in rubik.log file.  Have size = 2 or 3, orient = 0, practice = 0,  ran-
       domized  = 1, and moves = 0 and the number representation for the color
       of the "cubie" faces (usually 0=R, 1=Y, 2=W, 3=G, 4=O, 5=B).  Bring  up
       xrubik, hit 'g' so it will get your configuration and then 's' to solve
       your cube and then 'w' to write  out  the  steps.   Then  examine  your
       rubik.log file.


REFERENCES

       Inside Rubik's Cube and Beyond by Christoph Bandelow, Birkhauser, 1982.
       pp 44, 45, 88, 89


COPYRIGHTS

       (R) Copyright 1994-2006, David Albert Bagley

       Michael B. Martin, <martinm@sps1.phys.vt.edu> wrote an independent pro-
       gram cubist10.c-- for IBM PC.  I added the auto-solve code into xrubik,
       with his permission.


BUG REPORTS AND PROGRAM UPDATES

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

       The latest version is currently at:
              ftp://ftp.tux.org/pub/tux/bagleyd/xpuzzles
              ftp://ibiblio.org/pub/Linux/games/strategy



V7.2.4                            11 Oct 2006                        XRUBIK(6)