Best Abuse of the C Preprocessor:

	David Gibson
	University of Cape Town

	1 Sweet Valley Road
	Bergvliet
	7945
	South Africa


Judges' comments:

    To use:
	sh ./dgibson.sh [datafile]

    where:
	datafile	initial pattern (default: dgibson.data1)
    
    We have provided the shell script 'dgibson.sh' to make it easier
    to run this entry.  Run this shell script several times to
    see what happens.

    There are a number of data files available:

	dgibson.data1
	dgibson.data2
	dgibson.data3
	dgibson.data4
	dgibson.data5

    For dgibson.data5 you will need a large screen, lots of virtual
    memory and lots of time!

    Good luck trying to use a debugger on this entry!  Life is not
    always pretty.


Selected notes from the author:

    This program plays the Game of Life.

    Life is a cellular automaton invented by J. H. Conway, in which each of
    a rectangular grid of cells can be alive or dead, and cells with more
    than 3 or less than 2 (out of 8) live neighbours die, and empty cells
    with exactly 3 neighbours give birth.

    Some notes: the "STAT n" information does not have to be present in the
    initial configuration;  the initial configuration should not have live
    cells around the edges; the grid should be a perfect rectangle.

    Further features: the current generation number is preserved, and the
    grid automatically resizes itself as the object gets too big or too
    small.

	When writing this program, my goal was to make each cell in the life
	grid expand to the code which calculates the fate of that cell.  In
	addition, the resulting program is a single expression, which makes it
	necessary to recurse on main in two "directions" simultaneously.


Copyright (c) 1993, Landon Curt Noll & Larry Bassel.
All Rights Reserved.  Permission for personal, educational or non-profit use is
granted provided this this copyright and notice are included in its entirety
and remains unaltered.  All other uses must receive prior permission in writing
from both Landon Curt Noll and Larry Bassel.
