This is a project I made as a final project for my ME 59700 Applied Machine Learning in Mechanical Engineering Fall 2023 class. It simply plays Tic-Tac-Toe based on past experience (training data.) When it doesn't know what to do next, it picks a random move. Every game you play gives it more training data (experience) to work with. It can get decent at playing the game with enough good data, but a lot of data slows it down. I say good data because the system has no filter for both sides playing poorly. Press 1 to attempt to generate up to 50,000 random new training points or "playthroughs" of experience. Hold Space and press 2 to generate up to 500,000 random new training points. This takes a while. Press 0 to clear all training data. This is useful for speeding up the decision-making process and training the model from the ground up. Press Q to see how many training points are in the data set. Press W to stop seeing how many points. I whipped this up in a few days, so apologies if the UI is a little clunky in places.