In this assignment I created a client-side JavaScript version of Conway's Game of Life (see the Wikipedia page for more information).
Instructions:
Light blue cells are dead and have never been alive.
Dark blue cells are alive.
Gray cells are dead but were once alive.
Click on a cell to toggle the life status of the cell.
Shift+click on a cell to force the cell alive.
Alt+click on a cell to force the cell dead.
Click "Randomize" to randomly assign cells to alive or dead.
Click "Start" to continue incrementing over time.
Click "Stop" to stop incrementing over time.
Click "Step" to move to the next period of time. You can not "step" while the animation is started.
Move the "Speed" scroll bar to change the speed of the animation. Minimum is 1ms and maximum is 1000ms.
Move the "Grid size" scroll bar to change the size of the grid. Minimum is 20x20 and maximum is 200x200.
Click Reset to set all cells back to dead (and never alive).
You can change the radius, loneliness factor, overpopulation threshold, generation minimum, and generation maximum via the number fields below the grid. Note that you must hit "submit" after changing a number field. You can reset the parameters to the default values (1, 2, 3, 3, 3 respectively) with the "Reset Parameters" button.