Conway's Game of Life is (almost) always played on a regular square grid, but it doesn't need to be.
Write a program that implements the standard cell neighboring rules from Conway's Game of Life on a two-dimensional tiling of the Euclidean plane that is not a regular tiling of squares, triangles, or hexagons.
Specifically, the tiling you choose...
- Must contain at least 2 (but finitely many) differently shaped prototiles.
- The different shapes may be scaled or rotated versions of each other.
- They must be able to tile the entire plane without leaving holes.
- They must be simple polygons with finite perimeter. (They may not be weakly simple.)
- Must be isomorphically distinct from the square, triangular, and hexagonal grids. Any tiling that trivially boils down to a regular square, triangular, or hexagonal grid is not allowed.
Your tiling may be periodic or aperiodic, but when expanded to cover the entire plane, each prototile must appear infinitely many times. (So no "hardcoding" certain parts of your tiling to help achieve the extra points below.)
Each of your prototiles represents one Game of Life cell that neighbors other cells:
- Cells that share any edges or any corners are considered neighbors.
- Cells cannot neighbor themselves.
- Cells can only neighbor other cells once.
Tiling inspiration links:
- http://en.wikipedia.org/wiki/Tiling_by_regular_polygons
- http://en.wikipedia.org/wiki/List_of_uniform_tilings
- http://en.wikipedia.org/wiki/Aperiodic_tiling
- http://en.wikipedia.org/wiki/Penrose_tiling
#Output Your program should output some sort of graphical representation of your tiling with the Game of Life being played in it, which you should of course post in image/gif/jsfiddle format.
Please draw tile edge lines and use a light color for dead cells and a dark color for live cells.
#Scoring Your submission score is the number of upvotes minus downvotes, plus extra points for discovering common Game of Life patterns in your tiling:
- Find a still life - a pattern that doesn't change from one generation to the next. (+2)
- Find oscillators with periods 2 through 8. (+3 for every period you find an oscillator for, max of +21)
- Find an oscillator with a period of 30 or more. (+7)
- Find a spaceship - something that can get arbitrarily far away from it's starting location without leaving any still life residue. (It may not necessarily be a moving oscillator.) (+10)
- Find another spaceship that moves in a distinctly different way (and is not a mirrored version of the first spaceship), e.g. see glider and LWSS. (+10)
- Find a pattern of infinite growth. You do not have to prove that the growth is infinite, just show us enough evidence of the pattern that it is practically certain. (+25)
- Find a gun - something that generates spaceships forever (this also counts as infinite growth). (+50)
The infinite growth patterns must start with a finite number of live cells and the other patterns must always contain a bounded number of live cells (e.g. a spaceship should not grow arbitrarily large over time).
Due to the nature of aperiodic tilings it seems likely that many of these patterns would be impossible to implement in them. So any verifiably aperiodic tiling gets +40 points automatically. A pattern that works in one place in an aperiodic tiling does not have to work in other places.
Each of the bonuses can only be applied once. Naturally we'll need to see the output to verify them. The highest score wins.
#Notes
- The Game of Life rules are as follows:
- Any live cell with less than 2 or more than 3 live neighbors dies.
- Any dead cell with exactly 3 live neighbors comes alive.
- Other cells do not change.
- Patterns for the extra points should be possible regardless of boundary conditions, but otherwise you may choose any boundary conditions you want.
- By default the background should be all dead tiles.
Thanks to Peter Taylor and Jan Dvorak for hammering out loopholes in what tilings should be allowed.