Micah Russo 515607

readme.txt for

/home/phool/comp210/final/connect5

This connect5 program uses a rudimentary version of min/mix to play
connect5.  Its general algorithm is as follows:
1.  Read in the size and values of a board of connect five where:
  a.  Size 5-20
  b.  Foe's piece is denoted by -1
  c.  Empty space is denoted by 0
  d.  Friendly piece is denoted by 1
2.  Given this board search it for the next appropiate move by:
  a.  Starting in the upper left hand corner
  b.  If this space is empty place a friendly piece there and evaluate
      the board, otherwise see (c)
	1.  Evalution proceeds by starting in the upper left hand corner
	2.  Check the relevant horizontal, vertical, and diagonal rows
	  extending from this space.
	3.  For each of these, total the number of friendly and foe pieces
	4.  Give the row a value according to this number
	    (i.e. 4 friendly in a row is worth 300)
	5.  Sum these values across the entire board and attach to
	    inital board position
	6.  Reset board to initial conditions
  c.  If space is not empty assign a score of -20000 (presumable less than
      anything else that could be generated)
  d.  Proceed across the entire board in this fashion
  e.  When done, search for the highest score.

The functions and subfunctions were tested as written using "couts" in
their body to print relevant information out as it was created.

The only source file used was iostream.h

Known(?) Bugs:
The only bug I have encountered occurs when it plays itself on a 10x10 
board.  After many moves one of the players will return an illegal move
(according to conn5-gui/text).  However, inputting this board manually
produced a legal move and I was told by a member of our class that this
error was a result of the conn5-gui/text program rather than mine.

Interesting aside:
On boards of size 5-10, when pitted against itself connect5 consistently
produced draws.  Any larger board resulted in a win by player 1.

A similar version of connect5 is located at /home/phool/comp210/fun
This version allows the user to manually input moves and play against it.
It does not, however, recognize a win/draw or an illegal move made by the
user.  But, it does output the score array used to determine the move
made by the program.

Any further questions can be directed to phool@rice.edu