The very first project I had to work on when I took ICS 111 was called “KaGofer”. For this project, my class had to create a top-down racing game where the player has to move a car in order to navigate and collect items that are sprawled across a stage. If the player manages to collect all items, they win the game. The only controls that the player is allowed to use are the the WASD keys on the keyboard for moving the car around. Because most of us were all beginner programmers in that class at the time and this was our first project, our professor told us it was inevitable that our lines of code would be very long and that formatting and cleanliness of code would not prioritized as much (at least for this project). The main takeaway from this assignment was to have my class and I get acquianted with the EZ Graphics library that was provided to us by our professor. This library was also very powerful in the sense that we could import it and utilize it for all of our projects within ICS 111. From doing this project I learned a great deal about the basic concepts of Java, as well as getting familiar with using imported libraries to effectively reduce the amount of coding that I actually have to do.
A month or so after, our professor assigned us to rewrite our first project. With this being our second project for the class, our professor told us that it would be relatively easy to do. However, within that 1-2 month timespan from our first project, the class knew more Java concepts like Object Oriented Programming, nested for loops, while loops, switch statements, etc. With these new tools in hand, me and the rest of my classmates were tasked to recreate our first project from scatch. Despite our second project being almost identical to our first one, even with the game’s objective remaining unchanged, the code that we had to write for it had to be more efficient and shorter. Additionally, to earn full points, we also had to try implementing new features into the game that would make it stand out. For my second project, our professor gave us more free rein over how the player can move the car around. Therefore, I implemented a boost feature that would allow the car to temporarily move faster if the player pressed the spacebar key. If the player held the spacebar key long enough, they would run out of boost and they could not temporarily use any boost until it recharged. Though the changes and refinements I made to the game in this second project were minor, it was very satisyfying to compare it to my first project, and see the amount of improvement I have made to my code.