![]() |
"Glider" |
If you've never heard of it, Life is a cellular automaton, which is sort of like a virtual gameboard or grid where the pieces multiply or die off according to simple rules. These rules can be thought of as modeling prosperity or death from starvation and/or overcrowding. In Life, there is only one variety of cell and each spot on the board can either be occupied or not, with changes occurring according to the following rules:
- New cells are spawned in empty cells with 3 populated neighbors
- Cells with 2 or 3 neighbors remain "alive"
- Cells with fewer than 2 or more than 3 neighbors "die", and disappear
These rules are applied to a "generation" (i.e. the current arrangement of the pieces on the board) to define the next generation. Once this new generation is derived, it completely replaces the previous generation and the entire process can start over. Since the process is completely deterministic based on the initial state (or first generation) and the rules in place, Life is sometimes called a zero-player game. Exciting!
Why "play" a zero-player game? As it turns out, there are some pretty interesting patterns to be observed. As a computer programmer, I tend to think of Life as a 2-dimensional visual programming language, where the programs are certain deliberate arrangements of cells on the board that create interesting patterns or effects in the simulation.
The so-called "glider gun" is a good example of this sort of thing. It is a careful arrangement of cells, which over the course of 30 generations, produces a "glider" which "flies" off from a point near the center of the glider gun arrangement. The glider gun will repeat its pattern indefinitely, producing a constant stream of gliders. It's best to see it in action, which you can do by checking out my mediocre Life simulator (or just scroll down).
Tip: I never made this clear in the interface, but you can click any position on the grid below to toggle its life/death state.
I found this while rummaging around on my server, and it was something I wrote for fun back in January 2012. I'll admit you could probably search the Internet for Conway's Life and find a host of better online Life implementations. This is mine, though, and as always, feel free to check out the code.
Tip: I never made this clear in the interface, but you can click any position on the grid below to toggle its life/death state.
I found this while rummaging around on my server, and it was something I wrote for fun back in January 2012. I'll admit you could probably search the Internet for Conway's Life and find a host of better online Life implementations. This is mine, though, and as always, feel free to check out the code.