LucaSantagata / Game_of_Life

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Game_of_Life

Description

Game of Life (GoF) is a cellular automaton devised by the British mathematician John Horton Conway in 1970. The game is a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input. One interacts with the Game of Life by creating an initial configuration and observing how it evolves, or, for advanced players, by creating patterns with particular properties.

The universe of the Game of Life is an infinite two-dimensional orthogonal grid of square cells, each of which is in one of two possible states, live or dead. Every cell interacts with its eight neighbours, which are the cells that are directly horizontally, vertically, or diagonally adjacent. At each step in time, the following transitions occur:

  • Any live cell with fewer than two live neighbours dies, as if by needs caused by underpopulation.
  • Any live cell with more than three live neighbours dies, as if by overcrowding* Any live cell with two or three live neighbours lives, unchanged, to the next generation.
  • Any dead cell with exactly three live neighbours becomes a live cell.

The initial pattern constitutes the 'seed' of the system. The first generation is created by applying the above rules simultaneously to every cell in the seed – births and deaths happen simultaneously, and the discrete moment at which this happens is sometimes called a tick. (In other words, each generation is a pure function of the one before.) The rules continue to be applied repeatedly to create further generations.

Assignments

  • Start off implementing the GoF's rules and play with simple seeds in small dimensions
  • Increase the size of the GoF's world and play with more advanced pattern
  • Implement examples of the three categories of patterns still lifes, oscillators and spaceships
  • Analyse the evolutions of the patters in terms of frequency, replication, occupancy, etc.
  • ...

Contacts

About


Languages

Language:Jupyter Notebook 100.0%