If you would like to view the code of any of these projects please email me.
Click to jump to class from list below
Cube Puzzle Game
First mini-project for CS61B to become familiar with syntax for coding and debugging with Java. Task was to implement functionality where user can click square on game for cube to roll onto and the cube will pick up a blue square if its face is not already blue. Learned about Model-View-Controller architecture for project structure to implement a CubeModel that followed an observer design pattern.
First large scale project of CS61B, replicated the WWII German encryption machine "Enigma" by building generalized simulator that could handle numerous different descriptions of possible initial configurations of the machine and messages to encode or decode. Worked mostly with Java's String, HashMap, ArrayList, and Scanner data structures to handle string manipulation, data mapping required, and file reading for encryption.
Created a replica of the game Ataxx in Java in CS61B. The objective of the game is to fill the board with your color and moving to a square adjacent to an opponent's square changes their color to yours. Built both the GUI version and the command line version of the game implementing both manual players and AI players. For AI player, used game trees and alpha beta pruning based on heuristic values.
Built graph library package API in Java to facilitate creating and manipulating graphs. Required to build without implementing Java's hashing and mapping data structures so I had to get creative with ArrayLists and customized Queues to handle traversals, breadth first search, and depth first search. Used this package to implement replica of GNU Make and a Trip client that suggests the shortest path between two destinations using Djikstra's Algorithm and A* search.
First CS61A project to gain a basic understanding of the features of Python. Most of the time was spent understanding the given code. Learned how to implement control statements and higher-order functions.
Ants Vs. SomeBees
Used Python to code an interpreter for Scheme language for CS61A. Learned both about functional programming through Scheme coding assignment and Read-Eval-Print-Loop through coding each step of the process for interpretation.