Preface
This post is from 2018, I’ve moved it to this blog but the original can be found at https://github.com/game-of-life-in-X/The-basics-of-Conways-Game-of-Life/tree/master

It mentions a surprisingly cool Python program I wrote that can be found here, a preview image is below (if it doesn’t play in your browser it can be viewed here):

The original post is below:



The basics of Conway’s Game of Life

What is it?

Conway’s Game of Life is a cellular automaton designed by the British mathematician John Conway in 1970. The player creates an initial state for the game ‘grid’ and then provides no further input and watches how the cells ‘evolve’. The model is an example of the concept of complexity derived from simplicity as the game holds an extremely simple set of rules that are then used to create more complex models and ideas.

How can I try it out?

You can use my own python implementation or the common cross-platform implementation Golly. There are also online alternatives if you want to avoid installing a program and performing setup.

The rules

The rules for Conway’s Game of Life are extremely simple; Each cell is in a binary state of either dead or alive (usually with black representing a alive and white representing dead) and cells both alive and dead interact with neighbouring cells to produce an output, either changing state or remaining in the same previous state. Cells count as neighbouring if they are horizontally, vertically or diagonally adjacent to the cell. The game moves in ‘ticks’, with each tick acting as check in state for every cell on the grid. There are four rules that dictate what happens to a cell each tick:

  1. Any cell with less than two neighbours will die. This is known as underpopulation or loneliness.
  2. Any living cell with two to three neighbours survives to the next generation.
  3. Any living cell with greater than three neighbours dies . This is known as overpopulation or overcrowdedness.
  4. Any dead cell with three neighbours will become a live cell. This is known as reproduction.

Basic patterns

The most common types of patterns come in three forms:

  • Still lifes which are static cell groups that never change
  • Oscillators which change through a set of looping forms in an infinite loop, with each change being known as a period
  • Spaceships or Gliders which are moving groups of cells that move forever unless disrupted.

The block

A block model

The block is the simplest still life and is extremely easy to create. It is often left as the result of more complex models.

The hive

A basic hive model

The hive is another simplistic Still Life model. It useful for the creation of some more complex models.

The Blinker

The blinker

The Blinker is a simple two period oscillator, it stays in place switching between the two periods forever.

The Toad

The toad

The Toad is another two period oscillator. It’s slightly more complex and has a further reach than that of the blinker.

The Glider

A basic glider

This is a classical glider, it moves infinitely in one direction and doesn’t stop until it meets an external cell.

The Eater / Fish Hook

The most efficient eater form, known as a fish hook

A specialised Still Life model that can consume oncoming gliders. It is useful for more complex mechanisms such as logic gates. Note: This model may not work on certain algorithms

Where to go next?

From here it’s up to you to experiment and research to find more complex and interesting models and create new ideas. Youtube user Alex Bellos has a playlist featuring many more complex models such as glider guns and basic logic gates using gliders that you can explore here. There is also the Life Wiki which is extremely helpful for understanding more complex models and ideas in Conway’s Game of Life.