Assigned: Monday November 28.

Program Due: Friday December 9, 11:59 PM.


In this project, you'll write a program in C to play the Game of Life.

The Game of Life is an example of what's called a "cellular automata." It's not a game in the traditional sense: there aren't winners and losers. Instead, it's more of a simulation of life and evolution on a simple landscape.

The rules are simple: We start out with a grid of squares, some of which are 'alive' and some of which are 'dead'. Each iteration, some live squares die, and some dead squares are reborn, according to the following rules:


What's interesting about the Game of Life is that these four simple rules produce some amazing patterns. For some examples, check out the following links:

We'll be building the Game of Life in C. Lectures in class over the next week will cover the different components you'll need to build the game, including multidimensional arrays, working with files, and drawing to the screen with curses.

Your program must have the following features:

  • A source file called gameOfLife.c - this should contain your 'main' method that sets up the board and plays the game.

    Reading from the command line: Users should optionally be able to specify how long the game should run, a file with a starting configuration, and the number of rows and colums. So, any of these should be legal ways of starting your program: