
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.