The Class


As a First Year Engineering student at the University of Pittsburgh, all freshmen students are required to take the same courses regardless of major. One of the courses I was required to take was Introduction to Engineering Computing. This course covered MATLAB as well as the C programming language and was structured such that every student was a part of a group to work on projects and homework. Throughout the course, we were assigned two group projects, and one of those projects was to create Conway's Game of Life with the MATLAB programming language and display some statistics to the user afterwards.


The Project


Conway's Game of Life is a cellular automaton which has an end state only effected by the initial state of the game. In other words, it's a grid simulation that is entirely based off of its starting point. The game revolves around giving the program an initial amount of alive and dead cells, and then simply watching the patterns change according to these four rules:

  1. Any live cell with fewer than two live neighbors dies, as if by underpopulation.
  2. Any live cell with two or three live neighbors lives on to the next generation.
  3. Any live cell with more than three live neighbors dies, as if by overpopulation.
  4. Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.

Conway had proposed that no starting pattern could grow indefintely, and every initial state would lead to a finite number of living cells in the end. This conjecture ended up being false, however, when Bill Gosper figured out an initial condition which would create an endless amount of living cells (Gosper's Glider).


The Finished Product


The finished product looks like this:







This is merely a demonstration of the game and is not the code used for my group project. If you are interested in the source code my group created for this project, I have included it here.





This project was hard at first glance, but after delving deeper with my group, it ended up being more than manageable for my team. If you're someone who is interested in testing their programming abilities I would recommend this project.


Other Projects


Personal Website

Magic Mirror