Skip to content

scottmm374/game-of-life

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cellular Automata and Conway's "Game of Life"


  • Cellular automata can be used directly to create visual or acoustic multimedia content, to generate random numbers for cryptography or other purposes, and possibly to build parallel computers.
  • The chief use for cellular automata, however, is to model physical and biological systems.
  • Cellular automata can often serve as simpler tools for modeling systems than traditional mathematical methods. They are ideal for modeling systems that—like cellular automata themselves—are composed of simple components that manifest complex behavior. A few examples are: - Gas phenomena - Urban development - Immunological processes - Crystallization. The best known application of cellular automata, however, is modeling living systems. This application is the province of the emerging field of artificial life, which is concerned with modeling biological life or even creating an artificial form of life on a computer, in an attempt to fathom the mystery of the emergence of complex life forms in a universe of increasing entropy.

Real world phenomena that can be observed in cellular automata

  • Patterns on sea shells Cymbiola innexa are similar to patterns generated by rule 30 1D CA
  • Growth of crystals especially patterns in snowflakes can be modeled by simple 2D CA
  • Excitable media in biology (predator-prey dynamics) and chemistry (Belousov-Zhabotinsky reaction) produce spiral patterns that can be seen in Greenberg-Hastings Models
  • Evolution (self-replication + mutation + selection) can be seen on the Evoloop model, a modifiedLangton loop
  • Fractal growth of biological organisms
  • Models of universal computation include rule 110 and the Game of Life
  • The Game of Life exhibits interesting patterns that can't really be seen in the real world but they excite our imagination about what CA are capable of

Touring Completeness:

In the game of life we have the computational Head (the actual program that examines the current cell and determines the actions to take with that cell).

The tape are the cells, each one individually. In the game of life, Cell states are one of two ("Alive" or "Dead"), which I have implemented using 1's and 0's on a grid usiong a 2D array.

The touring machine in the Game of life is only aware of one cell at a time, the one it is currently on, and based of the rules programmed into the game, can do one of 4 things:

  - Move one space right on the grid
  - Move one space left on the grid
  - Change state of cell to "Alive"
  - Change the state of the cell to "Dead"

The accept states of the Game of Life are determined by the 3 rules. Once these states have been reached and no other possibilities exist, it will remain in this state infinitley.