Cells project banner
The assignment

A grid that comes to life

Cells is my recreation of John Conway's Game of Life, created as an assignment for my Grade 12 computer science class. The Game of Life is a zero-player simulation where the user creates an initial grid of living and dead cells, then watches how the pattern evolves over time.

Each cell follows a small set of rules based on its eight neighbouring cells. A cell can survive, die, or be born depending on how crowded or isolated it is. Even though the rules are simple, the patterns that emerge can become surprisingly complex.

My spin on it

I built the project as a school programming assignment, but spent extra time making the interface feel more polished and interactive. I wanted the program to be more than just a basic grid simulation, so I added menus, board creation options, visibility settings, and live statistics during gameplay. The project gave me a chance to focus on both the logic of the simulation and the way the user interacts with it.

Project Screenshots

Title screen, board creation tools, and gameplay views from the Cells project.

What the Project Included

Conway's Game of Life Rules

The simulation applies the classic rules for reproduction, survival, underpopulation, and overcrowding to every cell on each iteration.

Custom Board Creation

Users can create a custom board by choosing the grid size, or load a board from a text file using 0s and 1s to represent dead and living cells.

Interactive Simulation UI

The interface displays the iteration count, number of living cells, number of dead cells, and includes options to show or hide grid positions and dead cells.

How It Works

At the start, the user creates or loads a grid. Each square in the grid is treated as a cell that is either alive or dead. When the simulation advances, the program checks each cell's eight neighbours and applies the Game of Life rules to decide what happens next.

Pressing Enter advances the simulation by one iteration, allowing the user to step through the pattern and watch how the board changes over time.

The Rules

A dead cell with exactly three living neighbours becomes alive. A living cell with two or three living neighbours survives. A living cell with fewer than two living neighbours dies from underpopulation, and a living cell with more than three living neighbours dies from overcrowding.

What makes the Game of Life interesting is how much complexity can emerge from only a few simple rules.

Looking back

Big behaviour from small rules

This project helped me understand how simulations work and how a program can update a whole system step by step using a set of repeated rules. It also gave me practice with grids, loops, conditional logic, file input, and tracking changing data over time. I also learned how much a good interface can improve a project. Even for a simple simulation, menus, visual options, and clear stats can make the program much easier and more enjoyable to use.

Cells was one of my favourite programming projects from Grade 12 because I put extra effort into how it looked and felt. The core assignment was to recreate the simulation, but I wanted the final result to feel more complete and interactive.