Project 01: Conway’s Game of Life
Outline
 Program Introduction
 Simulation by Hand
 Program Usage
 Get Started!
Conway’s Game of Life
 0 player game played on a grid of squares
 Each cell (square) can be alive or dead
 Next step/generation determined by current configuration
 each cell has 8 neighbors
 whether a cell is dead or alive in next generation depends on number of alive neighbors
Your Task
 Complete implementation of Conway’s Game of Life
 Experiment and find “interesting” initial configurations
The Challenges
 Understand and work with a larger program
 given a lot of code, much of it unfamiliar
 understand structure enough to work with the code
 Implement Life
 Use your program to experiment!
The Rules
“Game” played on square grid of cells
 each cell has 8 neighbors
 cells can be in one of two states: alive or dead
 system evolves in rounds
Each Round
State of each cell in the next round is determined state in this round:
 If cell is alive and 2 or 3 live neighbors, it stays alive
 If cell is dead but has 3 live neighbors, it becomes alive
 Otherwise, cell is dead in next round
Simple Examples I (Red = Alive)
Simple Examples II (Red = Alive)
Using the Program
 Compile and run from terminal
 Terminal usage:
java Life <init file> <no. of generations> <interface: Graphic or Text>
Why do People Like CGoL?
 Simple rules, unexpectedly complex behavior
 Behavior is provably unpredictable
 given two configurations there is no algorithm that determines whether a game started from the first config eventually reaches the second
 Can “program” certain behavior

Life can simulate an arbitrary computer program
Initialization File Structure
4 4 // dimensions of board (square)
1 1 // coordinates of alive cells
1 2
2 1
2 2