Battleship

Prior to my transfer to the University of Hawaii at Manoa, I took classes at one of many of UH’s community colleges, Honolulu Community College. It was there that I began to have a level of intrigue for programming; while I did take a class on C in a prior semester under the title EE150, I ended up taking ICS 111 to help gather a basic understanding of coding.

How to Play Battleship

I won’t say the class was easy; it required a lot of patience, trial and error, and a lot of help. At the same time, though, it was a great experience. One of the many things we ended up learning was making a simple game and a childhood favorite of many: Battleship. The concept, for those who do not understand, is simple; you and the opponent have a patrol boat (2 points), a submarine (3 points), a destroyer (3 points) a battleship (4 points) and a carrier (5 points). Your primary goal is to eliminate the enemy before they eliminate you. Essentially, kill or be killed. Once all ships on you or your opponents side are sunk, the game ends. Before anyone asks; prior to this project, I have not played Battleship. I’ve seen YouTube pesronalities BasicallyIDoWrk and Mini Ladd play it once, but that’s about it. Originally, I wanted to work on a project for Connect Four or maybe Monopoly, though that one might be a bit more difficult to code on a basic programming level.

Why was this important?

To some, this may seem like a boring project; there is not any mindblowing graphics, no code that allows you to switch ammo types for your cannons and so on. It is just a simple game that would show what you can do in a very simple way. At the same time, it merged a number of concepts together and thus was one of my biggest projects ever undertaken. The final product ended up featuring several different classes, a large number of arrays and mathematics, and much more. We had to implement for the player as well as the computer and ensure that the program didn’t crash. When we first started the project, the amount of errors we had were plentiful. It was almost like trying to cut the head off of a hydra; we would patch up one bug or problem, only for two or three more bugs to take its place.

Ultimately, I loved the project; it was difficult and took several weeks, but at the same time it introduced me to the wonders of being a programmer. While I am still learning more about the many programming languages (such as Java, JavaScript, and C++), I do want to reach a point where I can make a more advanced game. Something that is very similar to modern, mid-budget indie games. Despite it being a bit out of my scope at the moment, even for someone who has at least a little bit of experience with several programming languages, it would be a dream come true to make a game that would be loved by many.