Learning by building, modifying, and debugging.

Programming gave me another way to turn game ideas into rules a computer could follow. Working on larger programs also changed the way I organized projects like Meteor Mayhem. It taught me that changing one line can fix the problem, create three new ones, or somehow do both.

Swap Monsters cave level and character-switching system

Swap Monsters

Using a supplied starter framework, I developed three distinct character abilities, a limited switching meter, projectiles, breakable objects, and a complete cave route over seven working days in a two-week Urban Arts course.

PCEP Certified Entry-Level Python Programmer official badge

PCEP Certified Entry-Level Python Programmer

Python Institute • Issued June 2026

Foundational certification covering Python syntax, algorithms, data types, containers, functions, conditions, loops, exceptions, and the Python Standard Library.

Verify credential →

Four projects, shown in chronological order.

Each project gave me one new idea to learn and something interactive to build with it. The demonstrations and preserved source repositories show both the finished programs and the code behind them.

Project 01

Adventure Game

Role Solo programmerTool PythonDuration About one dayScope Rooms, inventory, navigation, progression

Why I built it

I wanted to see whether I could make a navigable game world using only text and keep track of what the player collected along the way.

What surprised me

The inventory system was the part I was proudest of. Looking back, I would make picked-up items disappear from their rooms instead of letting the room act like nothing changed.

What I would add next

More rooms—and better tracking of how the world changes after the player interacts with it.

Game State Inventory Navigation Progression

View source repository →

Project 02

Blackjack Program

Role Solo programmerTool JavaScope Card draws, dealer logic, betting, win states

Why I built it

I wanted to turn rules I already understood as a player into rules the computer could check for itself.

Biggest challenge

Checking every win state took the longest. I also had a bug where a card would not draw correctly, which made a familiar game start doing impossible things.

What surprised me

It was funny how often I still lost to the dealer after writing the dealer. If I kept working on it, I would add visuals so the game was easier to read at a glance.

Randomization Game Logic Conditions Debugging

View preserved source repository →

Project 03

Restaurant Ordering Game

Role Solo programmerTool Python + TurtleScope Random orders, stations, visuals, upgrades

Why I built it

I wanted to combine a visual interface with an incremental game where the system changed as the player kept making orders.

Biggest challenge

The upgrade system took the longest because every improvement had to change what happened next without breaking the rest of the loop.

What surprised me

The random order generator and the visuals became the parts I was most proud of. With another week, I would add better visuals and more stations.

Python Turtle Graphics User Input Incremental Systems

View source repository →

Project 04

Multiplayer Board Game

Role Solo programmerTool Python + TurtleScope Four players, turns, board movement, mystery spaces

Why I built it

I wanted to combine graphics and game rules in a program that had to remember four players at the same time.

Biggest challenge

Getting the pieces around the board took the longest. One bug only appeared when a piece was sent backward and reached one specific corner. That was as annoying to find as it sounds.

What surprised me

The mystery blocks were the feature I was weirdly proud of. I would make the board bigger and add more spaces that actually change the game.

Four Players Turn-Based Game State Interaction

View source repository →

Four preserved project repositories.

Each repository contains the available source and a README describing what was preserved. The Blackjack archive is incomplete because its companion InfoClass file is missing.