Several implementations of Conway's Game of Life.
This project uses Python 3.6 and pipenv
.
First, install the dependencies with pipenv install
.
Then just run make
to create an environment and all the application dependencies.
It's probably easiest to start with the CLI.
Just run ./cli
. Run ./cli --help
for options.
Just run ./web
. It accepts the same options as ./cli
, and you can set the PORT
environment variable to change the port.
You can configure the application to use a different style of iteration.
There are currently three styles, which can be specified on the command line (e.g. ./cli neural-network
).
translate
(the default) uses matrix translation to calculate the next generation.mapping
uses a huge lookup table.neural-network
uses a basic 3-layer neural network, which requires training first. To train it, runPYTHONPATH=src python ./src/styles/neural_network.py
.
By default, Predestination generates a random, uniformly-distributed game the same size as your window, and then iterates from there. To use a file as the starting game instead, just pass it using the --file
option. You can see an example in test/fixtures/glider.life.