packages icon
  X-BASED CUBES
  ============= Cubes X widget, V5.4

Primary site: ftp://ftp.tux.org/pub/people/david-bagley/xpuzzles
Secondary site: ftp://ftp.x.org/contrib/games/puzzles
Web page: http://www.tux.org/~bagleyd/puzzles.html
Maintainer: David A. Bagley <bagleyd@bigfoot.com>

  It has been tested on the following platforms:

    Sun4 SPARC   SunOS 5.5.1  X11R5,X11R6
    DEC  VAX     VMS6.1       X11R5
    DEC  ALPHA   VMS6.1       X11R5
    HP   HPPA1.1 HP-UX 9.01   X11R5
    PC   486     Linux 1.2.13 X11R6(*)

    * Keypad may not work, since various keycodes may not be defined
      by default.  Check that "KP_1 - KP_9, Home, Up, Prior, Left,
      Begin, Right, End, Down, Next" are defined towards the end of
      /usr/lib/X11/etc/xmodmap.std .  If not defined
      cp /usr/lib/X11/etc/xmodmap.std /usr/lib/X11/xinit/.Xmodmap
      and then motify this or create your own at ${HOME}/.Xmodmap .
      You should just have to uncomment them (get rid of some '!').
      This should be done before X is started.  Also it may work better
      with the Num-Lock on.

  If you have to do any editing to get this to work, please mail me
  the changes.

HOW TO BUILD?

  An ANSI C compiler is required for build.

  To build, it should be easy.  There are 3 choices.

    configure:
      Relatively new so there is a good possiblity that it is not set up
      correctly on your system.  You may want to set SCOREFILE and DATAFILE
      in Makefile.in .

      configure ; make

    imake:
      Sometimes this is not setup correctly by the distributer ... i.e. not
      my fault.  You may want to set SCOREFILE and DATAFILE in Imakefile .
      If you have Motif you may want to do this quick edit in the Imakefile:
        Uncomment line "#define XpmLibrary".

      xmkmf ; make

    make.com (VMS users only):
      You may want to set SCOREFILE and DATAFILE in make.com .

      @make

  Then just run "xcubes" (or "xmcubes" if you have Motif).
  If you do a "make install" "SCOREFILE" and "DATAFILE" must be
  set correctly.

  You should have Cubes.ad copied to $(HOME)/Cubes or
  /usr/lib/X11/app-defaults/Cubes to run, especially if the background
  is similar to one of the faces. Edit this file for your preferences.
  You might want to move xcubes into /usr/bin/X11 (or wherever your
  X binaries are).
  You might also want to move xcubes.man to /usr/man/man6/xcubes.6

  Try resizing Cubes.  Notice the puzzle resizes to take advantage of
  the "room" available.

  If you were looking for a auto-solver, sorry.  I know the X11 "puzzle"
  shows the piece sliding, has a auto-solver, and a graphical image,
  but this program completes a theme with xtriangles and xhexagons. This
  program can be generalized to do a tesseract the puzzle gets no harder
  than the 2-D puzzle except its more tedious.
 
  Keep in mind that Cubes is a widget that can be simply stuck in
  other X programs. (If you find a use for this, let me know).

  Refer to the man page for detailed command line options.

  If you want further information on puzzles, I'll be glad :-) to send
  it to you.

MATHEMATICAL STUFF USED IN CONSTRUCTION
 
  Assuming it is a box of i columns, j rows, and k stacks and the
  numbering starts from 1.
    Corner 1-> 1
           2-> i
           3-> i*j-i+1
           4-> i*j
           5-> i*j*k-i*j+1
           6-> i*j*k-i*j+i
           7-> i*j*k-i+1
           8-> i*j*k
    Center -> i%2 =>
           0: None
           1: ((i+1)/2)^3
 
    Max_Width -> i units
    Max_Height -> j units
    Max_Depth -> k units
 
    Start -> x=y=z=0
    Next -> n%i =>
           0: x= 0 units; y+= 1 unit
              if (y == j)
                 {y = 0 units; z+= 1 unit;}
           default: x+= 1 unit
 
    Same row? -> (m-1) / i == (n-1) / i
    Same column? -> ((m-1) % i == (n-1) % i) &&
                     ((m-1) / (i*j) == (n-1) / (i*j))
    Same stack? -> (m-1) % (i*j) == (n-1) % (i*j)
 
FOUND A BUG?

  Send bugs reports and fixes to the author. For bugs, please include
  as much information as to their location as possible, since I may not
  have the resources to duplicate the them.

HISTORY

  [Jan 01, 97]  V5.4: Username, concurrency check, configure, man page
    updates.
  [Apr 08, 96]  V5.3: Minor changes.
  [Jan 31, 96]  V5.2: Tiles will invert, when selected.
    Now using dynamic allocation, so there is no maximum size.
  [Dec 15, 95]  V5.1: Minor updates, RNG for 32/64 bit.
  [Oct 01, 95]  V5.0: Xt/Motif, your choice.
  [May 16, 95]  V4.10: Warnings removed from Sun's cc and lint and now
    include a random number generator.
  [Mar 13, 95]  V4.4: Removed lint warnings and added a VMS make.com .
  [Nov 11, 94]  V4.3: Conservative guess for random number generator.
  [Oct 25, 94]  V4.2: Now allows undos, saves, and recalls.
  [Jun 28, 94]  V4.1: Can accommodate a auto-solver.
  [Jun 07, 94]  V4.0: Xt version.
    I got some good ideas from oclock.
  [Apr 01, 93]  V3.0: Motif version.
    I got some good ideas from Douglas A. Young's
    book: "The X Window System Programming and Applications
    with Xt OSF/Motif Edition", particularly his dial widget.
    I got some good ideas on presentation from Q. Zhao's
    tetris.
  [Dec 19, 91]  V2.0: XView version.
  [Aug 01, 91]  V1.0: SunView version.