  X-BASED TRIANGLES
  ================= Triangles 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 "xtriangles" (or "xmtriangles" if you have Motif).
  If you do a "make install" "SCOREFILE" and "DATAFILE" must be
  set correctly.

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

  If you were looking for a auto-solver, sorry.

  Keep in mind that Triangles 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 triangle of i triangles in each row and the
  numbering starts from 1.
    Corner 1-> 1
           2-> i^2-2i+2
           3-> i^2

    Center -> i%3 =>
           0: None
           1: j(j+1)+1 where j=2(i-1)/3 
           2: j(j+1)+1 where j=2(i-2)/3+1

    Max_Width -> i units
    Max_Height -> 3^(1/2)i/2 units

    Start -> x= i/2 units
             y=0
             side=UP
             fin=1
             step=1
    Next -> (fin==n) =>
         true: x+= -step/2 units; y+=3^(1/2)/2 units; side=UP;
               step+=2; fin+=step
         default: side=!side; x+=1/2 unit;
               y+= (side==UP)?-3^(1/2)/2:3^(1/2)/2

    Same row? -> (m'==n') where s'=sqrt_trunc(s-1) {k}
    Same trbl? -> (((m-1) - m'*m')/2 == ((n-1) - n'*n')/2)) {i}
    Same tlbr? -> (((m'+1)(m'+1) - m)/2 == ((n'+1)(n'+1) - n)/2) {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, border color
    to make faces look more realistic.
  [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 30, 94]  V4.2: Now allows undos, saves, and recalls, also fixed a bug
    where multiple moves were logged for certain single moves.
  [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.
  [Jan 06, 92]  V2.0: XView version.
  [Sep 05, 91]  V1.0: SunView version.
