Conway's Game of Life

This is the classic Conway's Game of Life with some tweak to it. Conway's Game of Life is a cellular automaton that requires 0 players. This is a game in which the only determinant of how the evolution process takes place is the given initial state. This project was completed for a Software Design course in C++ and contained several adjustments to the original game.

When creating this project, it was essential to create header files, classes, vectors, and diligent use of namespaces. There was a large amount of files involves, thus, this project taught me how to avoid issues with overlapping namespaces. It also familiarized me with concepts like vectors of vectors, file hierarchy within a project, and how to complete header files.

This project begins by reading from a text file that provides the initial input of the game. Once the game has collected the initial state, it will ask for the number of generations that it should compute. The program will then proceed in computing the generations using the conditions and rules of the game. Upon completion, the program will display the initial state, intermediate states and the final state to the console while also producing a text file containing the shape of every state.

The initial state would look like this:


initial text file

The program would read through this input and determine the initial configuration of the game (0 represents dead cells and 1 represents alive cells). The initial configuration for the respective input would look like this:


Initial config

Where "." represents the dead cells, and "*" represents the alive cells.

It would then display every generation from start to finish. The following is what 5 generations of the initial configuration would look like:

First gen Second gen Third gen Fourth gen Fifth gen

A text file containing the configuration of every generation will be returned as output.

All source code will be available upon request.

Contact Me

If you have any questions or inquiries feel free to contact me at: