
This posts gives some background information on my Game of life simulator.
The Game of Life is devised by the British mathematician John Horton Conway and is often called a zero-player game. It is a Turing complete cellular automaton to simulate cell growth in an abstract way.
The playfield consists of an infinite two-dimensional plain of orthogonal pixels, each representing a cell. A cell has only two states: dead or alive. Each timestep four simple rules are applied to each cell to determine its next state.
The rules
- Any live cell with fewer than two live neighbours dies, as if by underpopulation.
- Any live cell with two or three live neighbours lives on to the next generation.
- Any live cell with more than three live neighbours dies, as if by overpopulation.
- Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
These rules have extremely interesting consquences…
Starting from a random distribution of life or dead cells, each initial state has a perfectly determined evolution.
Some clusters of cells form patterns with special properites. Patterns can be stable, rejuvenating itself continuously, others oscillate back and forth. Some patterns can even move across the field without dying out.
The games poses a halting problem. The question is simply: will life eventually die out or will it continue for ever? This questions can’t be answered by any algorithm in reasonable time, it has to be played through to decide. But as the game is infinitely long (or not) we can never answer that.
The game is Turing complete as it is capable of simulating itself (and other Turing machines). It is possible to run the game of life inside the game of life.
And finally, if this seems like an abstract mathematical gimmick to you, know that cellular automaton are used in science to simulate variouse things including cell growth, population development, crystsallization/recrystallization of metals or polymers, fluid dynamics and many more.
Helpful resources:
Comments
Currently Deactivated - Contact me on email or Twitter if you have questions or suggestions.