This is Conway's Game of Life (Highlife rules implemented as a console application in Go. Multiple concurrent simulations can be running at the same time in different windows. Additional rules have been added that simulate a genome with a gene for color and shape.
The complete rules are:
- Survive when there are 2 or 3 living neighbors
- Die with less than 2 or more than 3 neighbors
- Born when there are exactly 3 or 6 neighbors (highlife)
- When a new cell is born, it takes on the color of the majority its parents or if there is no majority, a random color will be chosen from the set of colors present in the parents.
- When a new cell is born, it takes on the shape of the majority of its parents or if there is no majority, a random shape will be chosen from the set of shapes present in the parents.
- With each birth, there is a 10% chance it will take on a random color (mutation)
- With each birth, there is a 10% chance it will take on a random shape (mutation)
go build && ./life
Key | Action |
---|---|
n | create a new board |
w | close a board |
q / Ctrl-C | quit the game |
up, down, left, right | Move the window around |
h, j, k, l | Move the window around (vim, FTW) |
- | shrink window vertically |
= | grow window vertically |
_ | shrink window horizontally |
+ | grow window horizontally |
TAB | cycle through windows |
go test --bench=.