Selected Work
Location-Based Social Platform
A real-time, location-based social platform where users join chatrooms tied to physical locations. Built with a strict VIPER architecture for modularity, Socket.io for live updates, and OpenAI for content moderation.
Stack
Strozier closing early tonight 🔒
Anyone know if the side entrance stays open? Need to grab my laptop charger before 10pm
Free food outside Union rn 🍕
Some club event, first come first serve. At least 50 boxes out there
Anyone at Township tonight?
Heard they have a DJ tonight. Line moving fast?
interactive demo · try voting & chatting
Pygame Mini-Game Collection — Playable in Browser
CEN4090L Capstone Project
A collection of retro mini-games built with Pygame, compiled to WebAssembly via Pygbag so it runs directly in the browser. Features Flappy Zappy, Doodle Jump, Forest Survival, and a Boss Arena.
Built With
Where It All Started
First Program Ever
Fall 2023 · COP 3014
A terminal-based chess piece movement simulator built for my first programming assignment. Four piece classes (Knight, Rook, Bishop, Queen) move on a 10x10 grid with collision detection and rule-based validation. Simple, scrappy, and the project that started everything.
| 1 | // Chess.h — Class hierarchy for chess pieces |
| 2 | class Knight { |
| 3 | private: |
| 4 | int x, y; |
| 5 | public: |
| 6 | Knight(int x, int y); |
| 7 | void Move(int movex, int movey); |
| 8 | int GetX(); |
| 9 | int Gety(); |
| 10 | }; |
| 11 | |
| 12 | class Rook { |
| 13 | private: |
| 14 | int x, y; |
| 15 | public: |
| 16 | Rook(int x, int y); |
| 17 | void Move(int movex, int movey); |
| 18 | int GetX(); |
| 19 | int Gety(); |
| 20 | }; |
| 21 | |
| 22 | class Bishop { |
| 23 | private: |
| 24 | int x, y; |
| 25 | public: |
| 26 | Bishop(int x, int y); |
| 27 | void Move(int movex, int movey); |
| 28 | int GetX(); |
| 29 | int Gety(); |
| 30 | }; |
| 31 | |
| 32 | class Queen { |
| 33 | private: |
| 34 | int x, y; |
| 35 | public: |
| 36 | Queen(int x, int y); |
| 37 | void Move(int movex, int movey); |
| 38 | int GetX(); |
| 39 | int Gety(); |
| 40 | }; |
| 41 | |
| 42 | void intro(); |
| 43 | void gameboard(); |
| 44 | bool SpotIsTaken(int x, int y); |
| 1 | // Chess_driver.cpp — 10x10 board renderer |
| 2 | void gameboard() { |
| 3 | for (int i = 0; i < 10; i++) { |
| 4 | for (int p = 0; p < 10; p++) { |
| 5 | if (R.GetX() == p && 9 - R.Gety() == i) |
| 6 | cout << "R "; |
| 7 | else if (B.GetX() == p && 9 - B.Gety() == i) |
| 8 | cout << "B "; |
| 9 | else if (Q.GetX() == p && 9 - Q.Gety() == i) |
| 10 | cout << "Q "; |
| 11 | else if (K.GetX() == p && 9 - K.Gety() == i) |
| 12 | cout << "K "; |
| 13 | else |
| 14 | cout << "X "; |
| 15 | } |
| 16 | cout << endl; |
| 17 | } |
| 18 | } |
Built With