// ========================================
// John Conway's Game of Life
// Code: Adam Brown
// ========================================


//========================================================
Table of Contents:
//========================================================
I.	Description
II.	Controls
III.	Revision History
IV.	Contact Info


//========================================================
I.	Description:
//========================================================
As every computer science major in the world has done,
I have created a simple version of John Conway's "Game of Life".

The simulation engine is written as a separate library which
a Simulation View then renders. This provides me with the
flexibility to use the simulation in many different applications.

The simulation supports multiple players with a very small
modification to the original cellular rules. If there is a
cell which meets the conditions to be brought to life by
more then one player, then it comes to life for no one.

A few small additions I added, generation tracking, the longer
a cell is alive, it's color will change to reflect that.
Also you can toggle grid wrapping, meaning the edges wrap
around to each other.

If you are unfamiliar with the celular rules, they are as follows:
------------------------------------------------------------------
For a cell that is 'alive':
    Each cell with one or no neighbors dies, as if by loneliness.
    Each cell with four or more neighbors dies, as if by overpopulation.
    Each cell with two or three neighbors survives.

For a cell that is 'dead':
    Each cell with three neighbors comes to life.

For each generation these rules are applied to every cell simotaniously.


//========================================================
II.	Controls:
//========================================================
space 		= start/stop the simulation
+ 		= speed up the simulation
- 		= slow down the simulation
r 		= randomize the grid with life
c 		= clear the grid
left click 	= bring a cell to life
right click 	= kill a cell
1 		= Switch to Player 1
2 		= Switch to Player 2
w 		= toggle grid wrapping


//========================================================
III.	Revision History:
//========================================================

Update: 10JUN2008 1.1:
-------------------------------------
- Refactored Simulation lib to take grid size as an argument
- Improved scalability of graphics for different window sizes


Initial Release: 23MAR2008 1.0:
-------------------------------------
- Initial implementation


//========================================================
IV.	Contact Info:
//========================================================
Name: Adam Brown
web: www.darkrockstudios.com
aim: Jebradic
icq: 39886687
msn: wavesonics@hotmail.com
yho: Jebradic
email: adamwbrown@gmail.com