Differences with Zhao's v3.2.1 and Bagley's Alternate Version v1.3.0
The author of v3.2.1 is Q. Zhao.  The (Alt) version is a corruption
of that and its by David Bagley. The game has new features:

  The original tetris piece is a 4 square polyomino. In the altered
version one can change the number of squares in each polyomino from 2-6.
7 or more squares in a polyomino leads to a hole that is impossible to
fill on one shot, so it is a good place to stop (and 1 is too trivial).
  +++
  + +
  ++

  There is a diagonal mode as well. Here we have diagonal and regular pieces.
One can change the number of squares in each polyomino from 2-3. If one has 4
this again leads to a hole.
   +
  + +
   +

  A mixed mode allows polyominoes of less size than a maximum determined by
the chosen number of squares.

  A bonus mode puts a greater size polyomino on any automatic level
change or if playinng fast.  (-n must be 2-5 for regular and 2 for diagonal).

  The command line options:
    -n <squares in each polyomino>: allowed range 2-6
    -diagonal: option to allow diagonal polyominoes (-n must be 2-3)
    -mixed: option to allow mixed polyominoes (-n must be 3-6 for regular
      and 3 for diagonal)
    -ccw: choice on rotation (not -rightRotation)
    -fixedFill: the other method could possibly fill up a whole row; in
      this mode 4 squares per row will be filled
    -suddenAppear: pieces will appear all at once, instead of gradually,
      also one is prohibited from rotating a piece above window (more
      points are awarded in this mode)

  To make these games interesting and "do-able" the ability to rotate gets
turned off if it is easier than the normal 4 square tetris piece (or 4 square
polyomino). An added ability "reflect" (right-left -> left-right) allows one
to attempt the 5 square and 6 square tetris pieces. An input file of all the
pieces gets read, with all the various mappings. This is further explained in
the comment section of that file, "polyomino.h".

  The reflection keys are 'i', 'e', and '8' on the keypad. '>' increase
increase and the number of squares in a polyomino (a '<' key may lead to
cheating). 'g' toggles the diagonal mode, 'm' toggles the mixed mode,
and 'o' toggles the bonus.

  There are a few other small changes:

    o the Up arrow defaults to rotation. This might not be good with some
       keyboards and one may want to use it for reflection. Check the
       Imakefile or the Makefile.std to change.
    o the Down arrow defaults to drop. This might not be good with some
       keyboards and one may want to use it to rotation. Check the
       Imakefile or the Makefile.std to change.
    o polyominoes are read from "polyomino.h". In that file I try to explain
       the format.
    o added ^C to escape; my own conditioning.
    o have my own icon in ticon.xbm, just for fun. The old one is in
       "ticonold.xbm".
    o some keyboards have a keypad and do not have 'R' keys, referencing the
       keypad does not map to the 'R' keys, so one should have both.

  I have tried to keep everything from the version 3.2.1, but I did not keep
the bonus mechanism from that. Since this program has more features, the
array structure that allows this is more complicated, and thus is hard
to read. If you don't care about these features, than just look at Q. Zhao's
original "tetris.3.2.1.tar.Z" found under ftp.x.org under /contrib/games.

  The input file "polyomino.h" can be reused for my "alwelltris" game.
I originally wrote "xvtetris" and "xvwelltris" in XView, which Sun is
dropping. Also, I have a "altertris" (triangular) and a "alhextris".
In both of these the pieces come down diagonally and bounce of the walls
and other pieces. They also have associated files called "polyimond.h"
and "polyhex.h". I would like to write a 3d version of tetris using GL
some day, the "polycube.h" file associated with that could fill volumes for
all of the possibilities.

  Among my other releases are xabacus in /contrib/applications and a
directory of puzzles in /contrib/games/puzzles (xcubes, xtriangles,
xhexagons, xmball, xmlink, xpanex, xpyraminx, xoct, xrubik, and xskewb).

  I want to EMPHASIZE that Q. Alex Zhao was not consulted for this release
so any screw-ups are my fault.

  I tested this on m68030 w/ HPUX 8.0 and a sparc-2 w/ SUNOS 4.1.3
and a PC w/ Linux 1.0 and I will admit I didn't test the bonus option as
well as I should have.  More recent tests have been on Ultra-2 Solaris 8
and a Pentium Linux 2.2. 

  Any problems, updates, or questions get back to me.

				David Bagley <bagleyd@tux.org>
