8. Fundamentals of Computer Science
BOS / 2019
At: GitHub.com
Learned the basics of Computer Science while programming in Java. Then, as our last assignment, built this atrocity of a game: fractally & randomly generated, always solvable game of Light Em All. In this game, the board is generated to allow only 1 valid orientation of all game tiles. The goal is to power all tiles on the board. There is one powerstation and a set power level, dictating how many tiles out it can send power. You can rotate the tiles by clicking, and move the power station to connected tiles with the arrow keys.
Things I learned: Image and JavaWorld libraries. Fractal generation was hard, so making sure all my cases were thoroughly tested and all the recursive “gluing together” of edge and base cases were as robust as could be.
At: GitHub.com
Built minesweeper! You click to reveal non mine tiles, and it will flood fill all adjacent tiles that are not mines. You win the game by revealing all the non-mine tiles.
Things I learned: I hate minesweeper. Recursion is actually cool and useful. I hate minesweeper.
At: GitHub.com
Built a game called N-Bullets. You shoot a bullet from the bottom middle of the screen and each “ship“ or circle you hit, the circle splits into increasingly more ships. So, if I hit a level 1 ship, it will explode into 2 level 2 ships. If I hit a level 2 ship, it will explode into 3 level 3 ships. And these ships project outward and hit other ships, causing a chain reaction of beautiful geometric explosions of circles. If you’re really lucky (or in my case, really skilled), you clear the screen of all other ships and win the game!
Things I learned: Proper encapsulation and OOD. The assignment was released in stages, so you really had to design fully modular components to be able to maintain the structure and stability of your code going forward.