Inspiration
My main inspiration was a YouTube video titled "The Game That Learns by Vsauce2. I saw this video when I was younger, and I'd always wanted to try something similar but on a larger scale. Thankfully, this hackathon was the perfect opportunity for me to try that out.
What it does
First, the code trains itself to be good at Tic-Tac-Toe by playing against itself 250,000 times, giving the user some details to read about in the meantime. Then the user can play as many games against the machine as it wants.
How I built it
First, I began with the machine, and how it would learn from its mistakes. Then I got started with the basic structure of how the user would interact with the algorithm, then I finally added features to make the user's experience better.
Challenges I ran into
I'd say that the hardest thing I had to deal with was with the interaction between the user and program, since there were a lot of edge cases to deal with. For every problem fixed, 3 more seemed to come up. Thankfully, these bugs were fun to fix, so I didn't feel too frustrated.
Accomplishments that I'm proud of
I'm proud of the fact that I was able to program all of this. At first, I thought that Machine Learning would be too advanced and this would be too much work, but I was able to slowly chip away at the problem until I conquered it. I'm also proud that I was able to find almost all bugs (but there are probably still a couple hiding deep in there)
What I learned
Overall, I learned about how to make a algorithm interact with itself in a recursive way, leading to it learning through it's mistakes. I also learned how to create a program that interacts to user inputs, which would be important for more front-end languages like HTML/CSS/JavaScript.
What's next for Learning About Machine Learning Through Tic-Tac-Toe
I hope to use these ideas learnt to pursue more coding languages that I didn't think would be too useful to help make a more readable environment for projects. Since my code only runs in the terminal, I should focus on ways to display elements outside of one.


Log in or sign up for Devpost to join the conversation.