My implementation of Project 3 for CS 32 - Kontagion, where Socrates Nguyen bravely fights off Dr. Evyl's formidable bacteria army.

The controls for the game are simple - → key moves Socrates clockwise, ← counter-clockwise. The space key fires Socrate's Spray, which replenishes automatically. The Enter key triggers Socrate's radial Flame blast, which does not replenish automatically.
The goal for each level is to exterminate all the bacteria. Dirt piles randomly generated within the environment provide useful barriers between Socrates and Bacteria, as Bacteria cannot destroy them. Socrates' Spray and Flame can however, so consider yourself forewarned.
Bacteria spawn from Holes, which increase in number as the levels advance. When a Hole disappears, it has emptied all its bacteria; until then, it will keep releasing them.
There are 3 kinds of Bacteria: Salmonella, Aggressive Salmonella, and Ecoli. Salmonella and Aggressive Salmonella are visually indistinguishable, but Aggressive Salmonella pursue Socrates if he is close. Otherwise, both types of Salmonella will move semi-randomly and eat food (Pizza). If enough Pizza is eaten, Bacteria will duplicate. Ecoli are more single-minded and pursue Socrates no matter what, meaning they can become stuck if Dirt is in between but otherwise are quite formidable.
To aid Socrates on his mission, Goodie objects will randomly spawn from time to time. There are Extra Life Goodies, Flamethrower Goodies, and Restore Health Goodies, all fairly self-explanatory.
However, Fungus may also spawn from time to time. These appear on the perimeter of the dish and may only be cleared away by Flame blasts.
If you are interested in the implementation for various Game Actors, I encourage you to read Kontagion/report.docx. This details every method for each Actor and how I ensured functionality. If you'd like to tinker around with the numbers or are just curious how much an Ecoli decreases your health by or how often a Flamethrower Goodie spawns, I highly recommend you read it as well.
Happy hunting!