Game of Life with Processing.js
I was bored. So I thought of playing Game of Life. I got to know about it through hacker logo which is the glider pattern from the Game of Life. While playing I thought let me code it processing.js. Game of life is a simple game with no interaction involved once you start with the initial seed.
From Wikipedia:
The Game of Life, also known simply as Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970.[1]
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.
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 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 caused by under-population.
- 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 overcrowding.
- Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
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 occur 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 preceding one). The rules continue to be applied repeatedly to create further generations.
The initial code was borrowed from Ran Tao's java based program. I rewrote in Javascript version of Processing. Also added player buttons for more control. Also added a way to start with your own seed through it starts with random seed. One more change to the original Life is that you can introduce a living cell while its playing. Just click on the grid. Its kind of against the actual game, but it seemed more fun to me.
Clear it and introduce your own seed using mouse or just intrude, you are God. Go to full page version its more fun. Source code is on GitHub.
Now which one is live cell and which one is dead cell? blue or green? :|
– green (reproduction)
– blue (stasis)
Oh yeah, btw dead ones disappear into black hole.
Thej,
Wonderful! I wish I could more often and like you.
Should have said ‘code more often…’
awesome game to play with and analyze. I some how could get a recursive self sustaining pattern in which this game of life never ends.. will try to figure out the right pattern.. but nevertheless the rule makers are awesome thinker :)
There are many self sustaining patterns. Hacker pattern is one of them. But probably you can discover new ones.