# xbarrel

## 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  {file-
           name}] [-{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  chal-
           lenging 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>} @ (<Num-
                  ber of moves>/{<Record number of moves> <user name>|"NEVER noac-
                  cess"|"practice"}) - <Comment>
           Movement of tile pairs are either move together or independent.
           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 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 bar-
                   rel 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 slid-
                   ing 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?

## SEE ALSO

           X(1),  xcubes(6),  xtriangles(6),  xhexagons(6),  xmlink(6), xpanex(6),
           xmball(6), xpyraminx(6), xoct(6), xrubik(6), xskewb(6), xdino(6), xaba-
           cus(6)

## COPYRIGHTS

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

## 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:
                  http://www.sillycycle.com/puzzles.html
                  http://ibiblio.org/pub/Linux/games/strategy

    V8.0.6                            23 Mar 2017                        BARREL(6)