##Beat me if you can! @HackPrinceton
I am a CS beginner. I just started intro to CS course 2 months before. Yet, here I am, not experienced, but ready to take up challenges. I just learned arrays in class this week. Therefore, I decided to build something fun, difficult but also within my knowledge so far.
Beat me if you can! is an interactive Tic Tac Toe game. It's not easy to win over the computer.Try it out yourself!
At first, I had no idea what the main structure should look like. Therefore, I started to build the simple parts and tried different angles to crack the problems bit by bit. Later, I thought about how human beings thought when they were playing the game. With that in mind, I managed to simulate the reasoning process and use programming languages to build it. After fixing a few bugs, it worked out nicely! I sorted out the main logic link by simulation and imitation. Without being conscious of my methodology, the right logical structure came out as my ideas developed through trial and error.
At first, I didn't even know where to start. I was daunted by seemingly myriad possibilities and had no idea how my program was going to look like. Also fixing the bugs takes almost the same amount of time I spent on programming. I am so glad that I kept thinking about it and cracked the problem step by step. When I almost finished it, I didn't even realize that every functionality I previously thought of worked out nicely!
As a programming beginner, I got out of my comfort zone, came to a hackathon, got exposed to geek experience and built something cool I am most capable of so far. I encountered lots of problems, but never gave up or lost my heart. I so proud to say that I solved this problem independently. It's the longest program I have ever written so far. I take my pride in my perseverance and courage.
With this experience, I started to understand how Artificial Intelligence works: scientists first observe and draw a conclusion conclude on how human beings think and then simulate the thinking process by using language that machines can understand and work on.
More importantly, I used to think, to be a good programmer, you really had to be super intelligent. Yet, after this hackathon I realize that perseverance and patience are far more important than intelligence. High intelligence can make you a faster learner, but only persistence will take you far.
I found out an article about the algorithm of Tic Tac Toe.(http://neverstopbuilding.com/minimax) The author managed to make the game unbeatable. I would like to consider all the possibilities and build the perfect strategy for my program!