Content-type: text/html; charset=UTF-8

# XRUBIK

Section: Games and Demos (6)
Updated: 01 Sep 2022
Index Return to Main Contents

## NAME

xrubik - Magic cube X widgets

## 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] [-[no]sound] [-moveSound {filename}] [-{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 read (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.

Press "S" or "s" keys to start auto-solver. Only works on 2x2x2, 3x3x3, and 4x4x4 cubes.

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 piece, if at all (i.e. those pieces not on a corner or edge). This does add complexity so there are 2 sets of records.

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

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

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

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

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

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

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

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

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

Press ">" or "." keys to speed up the movement of pieces.

Press "<" or "," keys to slow down the movement of pieces.

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

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

Key pad for other than Rubik2d, 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 non-opengl 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 noaccess".

## OPTIONS

-geometry {+|-}X{+|-}Y
  This option sets the initial position of the rubik window (resource name "geometry").
-display host:dpy
  This option specifies the X server to contact.
-[no]mono
  This option allows you to display the rubik window on a color screen as if it were monochrome (resource name "mono").
-[no]{reverse|rv}
  This option allows you to see the rubik window in reverse video (resource name "reverseVideo").
-{foreground|fg} color
  This option specifies the foreground of the rubik window (resource name "foreground").
-{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" configuration. 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 distinguish 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 pieces in the rubik 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 the twisting of the puzzle (resource name "moveSound").
-{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 pieces on a edge along x-axis (resource name "sizeX").
-sizeY <int>
  This option allows you to change the number of pieces on a edge along y-axis (resource name "sizeY").
-sizeZ <int>
  This option allows you to change the number of pieces on a edge along z-axis (resource name "sizeZ").
-[no]orient
  This option allows you to access the oriented 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 xrubik 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 xrubik configuration, starting position, and the movement of its pieces. The format is not standard. The reason is that this is simple to produce and the standard notation is no good for variable number of pieces.

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 pieces to be oriented>
  practice: 0-1 <0 false, 1 true>
  moves: 0-MAXINT <total number of moves>

  startingPosition: <2 dimensional array of face and piece position, each face has size1 * size2 pieces, 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 #: <direction> <control> <face> <position>

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 cannot solve (2x2x2, 3x3x3, 4x4x4) enter it in rubik.log file. Have size = 2 or 3, orient = 0, practice = 0, randomized = 1, and moves = 0 and the number representation for the color of the piece (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

Magic Cubes 1996 Catalog of Dr. Christoph Bandelow.

The Simple Solution To Rubik's Cube, James G. Nourse, June 1981

Rubik's Cube Newsletter by Ideal Aug 1982 Vol.1 No. 2

Rubik's Cube The Solution, Ideal Toy Corporation, 1981

Rubik's Revenge Puzzle The Solution, Ideal Toy Corporation, 1982

## SEE ALSO

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

## COPYRIGHTS

® Copyright 1994-2022, David A. Bagley

Michael B. Martin, <martinm@sps1.phys.vt.edu> wrote an independent program 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 A. Bagley, <bagleyd AT verizon.net>

The latest version is currently at:

  https://www.sillycycle.com/puzzles.html
  http://www.ibiblio.org/pub/Linux/games/strategy/

## Index

NAME
SYNOPSIS
DESCRIPTION
FEATURES
OPTIONS
RECORDS
SAVE FORMAT
REFERENCES
SEE ALSO
COPYRIGHTS
BUG REPORTS AND PROGRAM UPDATES

This document was created by man2html, using the manual pages.
Time: 22:24:31 GMT, September 11, 2022