Hyper TTT 0.9

by Brian Nenninger
email: bwn@kreative.net

--------------------------------------------------------------------------------
Contents:

System Requirements
Introduction
How to Play
Adding New Pieces
Known bugs/limitations
Version history
Planned improvements
Feedback information
The Obligatory Legal Stuff


--------------------------------------------------------------------------------
System Requirements
- BeOS Preview Release

--------------------------------------------------------------------------------
Introduction:

Well, this is a tic-tac-toe game, which you have probably figured out. Hopefully
you'll find it a bit different from the other tic-tac-toe games out there. Some
features include:

- play on boards with between 2 and 6 dimensions(see "Known bugs" section)
- play against the computer(choose between 3 computer strategies) or another
human
- threaded (of course)


Oh yeah, I guess I should say something about how to play. Basically, you want
to get a complete row of your pieces while preventing your opponent from doing
this before you. This is easy in two dimensions, a bit more challenging in
three, and pretty annoying in four or more.  Since computers aren't very good at
showing more than 2-d images, higer dimensions are represented by separate 2-d
grids. If this sounds confusing, experiment with changing the number of
dimensions(in the Dimensions submenu under the Options menu). Winning rows in
higher dimensions can get fairly complex, as shown by these examples.

Here is a row of X's in two dimensions:
-------------
| X |   |   |
-------------
|   | X |   |
-------------
|   |   | X |
-------------

Here's one in three dimensions:
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   | X |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   | X |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   | X |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   | X |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------

And one in four dimensions(may need to make your window bigger):
-----------------   -----------------   -----------------   -----------------
|   |   |   | X |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------

-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   | X |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------

-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   | X |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------

-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
-----------------   -----------------   -----------------   -----------------
|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   | X |   |   |   |
-----------------   -----------------   -----------------   -----------------

If you have trouble seeing the 4-d row, realize that starting at the top, each
successive X moves down one big square, right one big square, down one small
square, and left one small square.  I realize this isn't the best explanation,
but the best way to get the hang of it is to play a few games.  Speaking of
which...

-------------------------------------------------------------------------------
How to Play

When you launch the Hyper TTT application you will see an empty game board.  It
defaults to 4 dimensions and 4 cells per row.  It also defaults to player 1
being human and player 2 being the computer.  To make a move, just click on the
cell you want to put your piece in.  When someone wins by completing a row, the
pieces in the winning row will flash on and off until a new game begins.  There
are many menu options to customize the game:

File menu:
New - starts a new game, aborting the current game if it was in progress.

Options menu:
Show Score - This will open a window showing the number of games won by each
player and the number of ties. It is visible when the application starts up, but
if you close it you can redisplay it with this command

Reset score - Resets each player's wins and the number of ties to 0 in the score
window. Good for when you're losing miserably.

Fastplay - If this is selected, when a game ends a new game will immediately
begin rather than waiting for "New" to be chosen.  This is really only useful if
the computer is playing itself.(Not that having the computer play itself is
especially useful either, although it's fun to stick it in the background along
with three other windows doing 3d animations and watch the OS stay fully 
responsive)

Size - submenu that allows you to select the number of cells per row. If you
change this while a game is in progress, a new game will start and the current
game will be aborted.

Dimensions - submenu allowing you to change the number of dimensions. As with
Size, changing this will abort the current game and start a new one.


Player 1 and Player 2:
These menus let you change who controls the players. "Human", oddly enough,
causes that player to be controlled by a human. "Offensive", "Defensive", and
"Balanced" are computer strategies, whose names should give you some idea of
their general approach. "Offensive" is constantly attacking, blocking its
opponents lines only when in immediate danger of losing. "Defensive" is the
opposite; it puts top priority on blocking its opponents threats. "Balanced"
tries to use an optimal mix of the other two strategies.

Note that you can change a player's controller and the game will not be
interrupted. Also note that even if both players are computer controlled and
thus making moves continuously, you can still choose menus, drag windows, and
switch to other running applications.

(The above paragraph is supposed to impress people using MacOS. Of course, it's 
exactly what we expect from a BeOS program.


Cells:
This lets you choose what Player 1 and 2's pieces look like.  The default is
"Color Squares", which are just solid red and blue rectangles. "X's and O's"
will use blue X's and red O's, still not terribly exciting. "Gradients" gives
you green and blue gradient pieces, using a very inefficient drawing technique.
In the future, you will be able to use bitmaps(see below).

------------------------------------------------------------------------------
Adding new pieces:
In the MacOS version, you can add bitmaps to use as pieces with ResEdit. The
BeOS version does not have a corresponding feature yet, but it will in the
future. I plan to use the Datatypes library to allow you to use any
graphic you have a translator for.

------------------------------------------------------------------------------
Known bugs/limitations:
I have only run this program on a Power Mac 7500 with a 604 upgrade card. I 
don't know of any reason why it wouldn't work on other Macs or BeBoxen, but
I can't make any promises. These are the problems I know about:

- Occasional crashes if the computer is playing itself for a long time(with
  Fastplay on) in 2 or 3 dimensions. Oddly, this doesn't happen in 4 or more.
- 6 dimensions isn't very usable unless you have an enormous screen and
something like a DayStar Genesis.
- Gradients pieces don't look good in 8-bit color.

-------------------------------------------------------------------------------
Version history:

7/19/97 : 0.9 - Bug fixes and recompiled for DR9, added gradient pieces. I had 
                hoped to work on this more, but AA was very unstable for me.
                Fortunately, PR is looking pretty good. Love that 24-bit color.
3/24/97 : 0.8 - Initial BeOS release

-------------------------------------------------------------------------------
Planned improvements:
- Bitmaps for pieces
- Sounds
- Better graphics(something other than a plain white background, for example)
- Better threading-right now the computer AI runs in a single thread
- Ability to save window placement, options, etc.
- Bug fixes
- Anything else I think of


-------------------------------------------------------------------------------
Feedback information:

If you have any comments, bug reports, or questions, please email me at
bwn@kreative.net.

-------------------------------------------------------------------------------
The Obligatory Legal Stuff

This program is freeware and may be copied and distributed freely.  Please don't
distribute modified versions or distribute it for profit in any way without my
permission. I am not responsible for any damage this program causes to your
computer or data.(although if this program does damage your computer or data,
I'd be very impressed)

