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.
|