For my first two inquiries at iHub, I created a Tetris game, and made an AI for the game Connect 4. I had already learned how to program simple board games before coming to iHub, so I took my first Inquiry as an opportunity to take it one step further, by making a game that involved constant movement of pieces, instead of a static turn based board game.
My second inquiry was much less about the final product, and more about what I could learn about artificial intelligence, and how to create a program that makes seemingly logical decisions. I used a single assignment from an MIT online course, which was to create an AI for connect 4, as a resource to create the AI.
I created the connect 4 AI using a board evaluation function I created, the minimax function, and alpha beta pruning. I set 4 different difficulties, which correspond to the depth of the tree search that the AI will go through and evaluate. Since the amount of workload increases exponentially as you increase the depth, I managed to make my “uneasy” mode search to depth 8, before it started taking unreasonably long for AI to make a move. I would like to point out that connect 4 is a solved game, meaning that the first player should always be able to win. Since that player is given the first move, there should always be a way to beat the AI, even in “uneasy” mode. The AI is far from perfect, but I’ve learned so much from this particular inquiry, and in the end, that is all that matters.
After I finished the project, I audited an AI course as well as a few mathematics courses from SFU in order to get a deeper understanding of the topic. Currently, I am now working on creating a vocal synthesizer, which requires an understanding of statistics, which I am now learning from online MIT courses.
Other shareable projects:
Creating a VST Plugin