\About

\DLife



\cThis application is developed using the Glasgow Haskell Compiler, 

\ca programming environment for the functional programming 

\clanguage Haskell. 

\d(see http://www.haskell.org/ghc).



\cThe application uses Port of Clean Object I/O library to Haskell.

\cOriginal library was developed by the 

\cresearch group Functional Languages at the University of Nijmegen.

\d(see ftp.cs.kun.nl and http://www.cs.kun.nl/~clean/).



Library was ported by

        Krasimir Andreev Angelov

        Peter Achten

        Simon Peyton Jones

\EndAbout



\Help

\DLife Help



\bAbout the Game of Life

The Game of Life by Conway is played in a two-dimensional, infinite universe

of cells. Each cell is identified by its position (x,y). The neighbours of a

cell (x,y) are the cells



\c[ (x+i,y+j) | i<-[-1..1], j<-[-1..1], (i,j)/=(0,0) ]



A cell is either dead or alive. Given a generation of cells, the next 

generation is computed using the following simple rules:



For each cell in the universe:

* it survives if it has 2 or 3 living neighbours, otherwise it dies

* it is born  if it has 3 living neighbours



\bUsing the program

The program opens a "Life" window which displays only a finite part of the

infinite universe of life. 



The universe can be displayed with an individual cell size of 1,2,4,8, or 16

pixels per cell (see 'Options' menu, 'Cell Size' settings). 



In the "Life" window the user can indicate that a cell is alive by pressing 

the mouse button at the desired position. A cell is killed by pressing the 

mouse button in combination with the command modifier key. All cells can be 

killed using the 'Erase All Cells' command ('Commands' menu). These include 

also the cells that are not displayed.  



Given a generation one can compute and display the next generation with the

'Step' command (menu 'Commands'). The 'Play' command (menu 'Commands') does

this continuesly. The 'Play' command does not detect cyclic situations nor

even if the universe consists of dead cells only. To halt a 'Play' session, 

choose 'Halt' (menu 'Commands').



To quit the application, choose the 'Quit' command (menu 'File). 



\EndHelp