Conway's Life

This is a very brief, telegraphic description; for a longer description, you might want to look here.

Conway's Life game is a cellular automaton. It consists of a number of "cells" arranged in a rectangular grid. It mimics biological life in certain respects. Each cell is either alive or dead on each time step. The state of each cell on the next time step is determined according to the following rule:
        if (alive && (numberLiveNbrs == 3 || numberLiveNbrs == 2))
           stays alive
        else if (dead && numberLiveNbrs == 3)
           becomes alive
        else is dead
The neighbors of a cell are the 8 cells that surround it. I.e. the cell 'X' has the eight neighbors labelled 'N'.
------
--NNN-
--NXN-
--NNN-
------
Thus, using * for alive and - for dead:
------
--***-
--*---
------
has neighbor counts
012321
022311
022421
011100
and becomes
---*--
--**--
--*---
------
------