Overview
In my Software Systems class, I built two arcade-style games in C.
The first was a flexible Pong implementation designed so new games could be added
easily to the same application. The second was MineSnake,
a creative mashup of Snake and Minesweeper.
These projects demonstrated my ability to design modular game architectures and deliver working games under tight course timelines.
My Contributions
Pong
I worked on both the Model and Controller. To enable extensibility,
I implemented a State struct
and a State Manager.
These acted like an abstract class and stack-based manager for game states
(e.g., start menu, Pong game, pause menu). This allowed seamless pausing and resuming
without reloading states.
I also wrote the
update method
for the Pong state and developed
controller logic
to track held keys (since our input library only registered press/release events).
MineSnake
MineSnake combined the fast-paced movement of Snake with the logic puzzles of Minesweeper.
The snake revealed the board as it moved, uncovering bombs or food. Eating bombs ended the game;
eating food grew the snake, with the goal of finding all hidden food on the field.
I again focused on the Model
and Controller.
The model handled bomb placement, snake growth, and revealing regions of the board.
Compared to Pong, this required more sophisticated logic to manage both real-time
gameplay and puzzle-solving mechanics.
Try It
To play MineSnake or explore Pong, clone the repos above and follow the setup
instructions in the README.
Both projects are fully open source.