xbarrel — Barrel X widget

Synopsis

/usr/games/xbarrel [-geometry [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]] [-display [{host}]:[{vs}]] [-[no]mono] [-[no]{reverse|rv}] [-{foreground|fg} {color}] [-{background|bg} {color}] [-tile {color}] [-face{0|1|2|3|4|5} {color}] [-{border|bd} {color}] [-[no]install] [-picture {filename}] [-delay msecs] [-[no]sound] [-bumpSound {filename}] [-moveSound {filename}] [-{font|fn} {fontname}] [-[no]orient] [-[no]pairs] [-base {int}] [-userName {string}] [-scoreFile {filename}] [-scores] [-version]

Description

The Barrel, the Billion Barrel, or Wonderful Barrel also seen as the Cylinder Puzzle is of Japanese origin. The puzzle contains 23 beads of 6 different colors. 4 each of 5 different colors arranged in 5 rows and 3 black beads making 3 rows one unit longer. A system of plungers slide all three of the long rows left and right. Two of the plungers sit together and the other (the middle plunger) is separate from the other two. There are 2 separate wheels or disks that rotate about the center axis.

Features

Press "mouse-left" button to move a tile. Release "mouse-left" button in the same row would move the tile towards the space (unless there is no space in that row). Release on a different row will move the tiles up or down.

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 "R" or "r" keys to read a saved puzzle.

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

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

Press "E" or "e" keys to redo a move.

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

"S" or "s" keys to start the auto-solver. Only works where oriented is off.

Press "O" or "o" keys to toggle the orient mode. Slightly more challenging on (default is off).

Press "I" or "i" keys to toggle the pairs mode. All the tiles rotate in pairs. This is considerably more challenging on (default is on).

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

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

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 Barrel as:

  8     Up

  ^
4< >6 Left, Right

  v

  2     Down

Use the shift key and the up or down arrow keys to rotate all the tiles.

Use the control key and the keypad or arrow keys to reduce or enlarge the complexity of the puzzle.

The title is in the following format (non-motif version):

xbarrel: {norm|ind<control of movement of pairs tiles>} @ (<Number of moves>/{<Record number of moves> <user name>|"NEVER noaccess"|"practice"}) - <Comment>
Movement of tile pairs are either move together or independent.
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 barrel window (resource name "geometry").
-display host:dpy
This option specifies the X server to contact.
-[no]mono
This option allows you to display the barrel window on a color screen as if it were monochrome (resource name "mono").
-[no]{reverse|rv}
This option allows you to see the barrel window in reverse video (resource name "reverseVideo").
-{foreground|fg} color
This option specifies the foreground of the barrel window (resource name "foreground").
-{background|bg} color
This option specifies the background of the barrel window (resource name "background").
-tile color
This option specifies the tile color of the tiles in the barrel window (resource name "tileColor").
-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. The 0th face is the last face face on barrel because I wanted that one to remain white by default when there are more or less faces.
-{border|bd} color
This option specifies the border color of the tiles in the barrel window (resource name "orderColor").
-[no]install
This option specifies if the colormap should be installed or not (resource name "install").
-picture filename
This option specifies the file for the picture (resource name "picture").
-delay msecs
This option specifies the number of milliseconds it takes to move a tile or a group of tiles one space (1-50) (resource name "delay").
-[no]sound
This option specifies if a sliding tile should make a sound or not (resource name "sound").
-bumpSound filename
This option specifies the file for the bump sound for the sliding of the tiles (resource name "bumpSound").
-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").
-[no]orient
This option allows you to access the orient mode (resource name "orient").
-[no]pairs
This option allows you to access the pairs mode (resource name "kpairs").
-base int
This option specifies the base used (default is base 10) (resource name "base").
-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 xbarrel 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.

Save format

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

pairs: 0-1 <0 false, 1 true; if 1 then pairs of rings move together>
orient: 0-1 <0 false, 1 true; if 1 then chain linked in order>
moves: 0-MAXINT <total number of moves>

startingPosition: <array of tile positions where 0 is the empty space>

This is then followed by the moves, starting from 1.

move #: <direction> <tile> <shift>
Direction is represented as 0 up, 1 right, 2 down, and 3 left.
Tile is the column of tile.
Shift is represented as 0 or 1, 1 if the whole puzzle is moved at once (here Tile does not matter), 0 if not. The xbarrel record keeper does not count a control move as a move, but here we do.

References

L. E. Horden, Sliding Piece Puzzles (Recreations in Mathematics Series), Oxford University Press 1986, Plate X.

James G Nourse, The Simple Solutions to Cubic, Puzzles, Bantam Books, New York, November 1981, pp 25-42.

John Ewing & Czes Kosniowski, Puzzle it Out: Cubes Groups and Puzzles, Cambridge University Press, New York, 1982, pp 50-54?

Copyrights

® 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