This repo contains all my work for CS61B - Data Structures class
-
Project 1 Enigma: 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. Utilized Java’s String, HashMap, ArrayList, and Scanner data structures to handle string manipulation, data mapping required, and file reading for encryption.
-
Project 2 Ataxx: Created a replica of the game Ataxx in Java. 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. For AI player, used game trees and alpha beta pruning based on heuristic values.
-
Project 3 Gitlet: Created a version-control system from scratch that mimics some of the basic features of the popular system Git. This was an independent project and I used file persistence, cryptographic hashing, graph traversals, and a combination of data structures.This project emphasized software engineering design principles such as efficiency, decomposition, and clean style.