
			Life Screen Saver Module v1.0
		      =================================

This archive contains both binaries and sources for the Life simulation
extension module for Siegfried Hanisch's OS/2 screen saver (ssaver11.zip).

Introduction:
===============
The Game of Life was introduced by the British mathematician J. H. Conway
in 1970 and was made popular by Martin Garder in his column in Scientific 
American. The game is a time based simulation where cells on a grid are 
considered alive or dead according to simple rules concerning the crowding
of neighboring cells. The simulation proceeds though generations displaying
the changes that take place to the grid as cells are born and die according 
to these rules of cell crowding. In its classic form the rules are as follows:

	1) A cell has 8 neighbors corresponding to its adjacent vertical, 
	   horizontal and diagonal cells.

	1) A living cell dies of loneliness if it has fewer than 2 living
	   neighbors (i.e. 0 or 1 living neighbors).

	2) A living cell dies of overcrowding if it has more than 3 living
	   neighbors (i.e. 4,5,6,7 or 8 living neighbors).

	3) A dead cell is born if it has exactly 3 living neighbors.

	5) All births and deaths on the grid occur in a single time unit 
	   called a generation. Dead cells that are born in a generation 
	   do not contribute to the number of living neighbors of another cell
	   during that generation, and cells that die in a generation are not 
	   considered dead neighbors to a cell during that generation.

The simulation provided here uses the classic rules of the game by default but 
allows one to change the rules as desired.

Use:
=====

The configuration dialog for the module allows you to set:

	1) CELLSIZE: Set the size of the cell in pixels. The bigger the cell 
	   the faster the simulation.

	2) INITIAL DENSITY percentage: The saver randomly assigns living cells
	   on the grid when the saver begins according to this density 
	   percentage.

	3) MAXIMUM CELL AGE: The purpose of this parameter is to prevent the
	   module from hanging when there is a repeating cycle of the same
	   births and deaths on the grid. When this occurs, one of the cells
	   involved in the cycle will die when it reaches this age and will
	   cause the grid to stabilize and then recycle with a new grid.
	   Setting this parameter to 0 will disable this feature (don't 
	   do this). Note that cells with no activity among their neighbors
	   are not affected by age.

	4) CELL FORM: Either outlined or solid. Outlined cells are drawn faster
	   than filled ones.

	5) CELL COLOR: Take your pick. The Random setting picks a color for you.

	6) LONELY, BIRTH, CROWD: You can change the rules of the game using 
	   these parameters. Look at the description of the game above to 
	   better see how they work:

	   LONELY:  A living cell with strictly less than this many living
	   	    neighbors will die of loneliness.

	   BIRTH:   A dead cell with exactly this number of living neighbors
	   	    is born.

	   CROWD:   A living cell with strictly more than this many living
	   	    neighbors dies of overcrowding.

	7) RESET:  Restores the default game settings.

Setup:
=======
	Shutdown the screen saver, copy the file life.ssm into the base 
	directory of the screen saver and restart the program. You should
	consider obtaining the newest version of the EMX runtime library
	and setting it up for all your programs which rely on it, like 
	ssaver and this module.

Contact Me:
============
	If you like this module contact me and I will make more like them.
	If you actually consider sending money for this module, send it to
	Siegfried Hanisch instead. Please examine this and the sample source
	code and try modifying it to come up with your own extensions.
	Distribute your sources with anything you create.

Michael G. Harris
mgharris@sage.cc.purdue.edu
(You can also contact me via the OS/2 Shareware bbs (703) 385-4325)
