No, this isn't a philosophical debate but a look at the phenomenon of Cellular Automata (CA). In the 1970s, Martin Gardner in his Scientific American magazine column devoted a lot of article space to a CA called The Game of Life (GOL) invented by an English Mathematician John Conway. It proved to be very popular with readers. I spent a considerable part of my undergraduate time writing Life simulations. It was fun!
GOL has two very simple rules. Imagine a 2d grid where each cell is either live (*) or dead (.) as in the diagram below.
* . *
. . *
. . .
The rules determine whether a live cell remains alive in the next generation or does through starvation or overcrowding and if a dead cell can become alive (birth). This is done by looking at all 8 neighbours in the 3 x 3 grid surrounding each cell.
1 2 3
4 * 5
6 7 8
- If there are three live cells then a dead cell becomes alive
- If there are less than two cells or more than three cells then a live cell dies out.
By Rule 2, the first example would create a new live cell as it is a dead cell siurrounded by 3 live cells.So we start with a grid full of random cells and run it through a few generations. It's fascinating to watch. Now it's very easy to program this algorithm and I'm going to do this as a tutorial but meanwhile, it has been done as an Open Source in C++. This has been done using a quite complex Data Structure (an ADT). You can find it here and its been added to the Code Library. There is also a fascinating technical article about the implementation of GOLLY here.