A C++ space-shooter game with level progression. The project allowed me to apply my knowledge of inheritance and polymorphism to create different objects (spaceship, aliens, asteroids, stars, and missile projectiles) in the game. In addition, I learned how to incorporate the Quartz program to run the game’s graphics and sounds. Link.
I was tasked with writing 4 different thread-functions to implement varied optimizations to the computation of a histogram. Following each functions guidelines, it was evident that each optimization changed the total amount of time needed to accomplish the necessary computations. Additionally, I practiced my use of Linux using the school server, and used the VIM text editor to edit my C files. The photo above shows the performance, with respect to time, of the first 2 functions. Link.
I created a dynamic storage allocator for C program data, i.e., my own version of the malloc, free and realloc routines. To do this I implemented a Next-Fit Implicit List Allocator, with some minor optimizations for added speed and efficiency. I found that using this version of allocation allowed for an easier implementation than an explicit list, while also minimizing the internal/external fragmentation of memory. Performance metrics of the allocator's Throughput Bound and Space Utilization are depicted in the photo above. Link.
A text-based C++ Black Jack game that I made in my free time. Has several key components: 52 card deck initializer function, a shuffle function, a computer player (which has basic decision making), and a currency system for bets. Self-contained in one cpp file, but functions are well-written so that it can be broken into a main.cpp and other respective .cpp files. Link.