Inspiration

After having learned about Ultimate tic-tac-toe in a combinatorial game theory book, our team members quickly fell in love with this complex twist of the original game. When it came time to decide what our project would be we knew we wanted to make some sort of game, and ultimate tic-tac-toe soon became the clear answer.

What it does

Our code implements ultimate tic-tac-toe in a graphical user interface, allowing for both 2 player or 1 player (versus a simple AI) modes.

How we built it

Two of us worked on a GUI while another handled back end development. Late last night we integrated the two pieces together to get a working game, and we've spent the remainder of today making a simple AI (whom we lovingly call Tic-Tac-Joe) and improving the aesthetics of the GUI.

Challenges we ran into

Getting inputs from user mouse clicks and mapping them to values inside of nested arrays was very challenging and ate up most of our evening. Additionally, creating a self contained window navigation system so that the player(s) could toggle through different screens presented many challenges, especially with having to undraw objects in bulk.

Accomplishments that we're proud of

We were very proud that our preplanning at the beginning of the hackathon led to simple integration late last night, and we all celebrated upon seeing that connecting our front end and back end was the simplest thing we had to do by far. Additionally, although it is rather simple we were proud to get an AI off the ground that can actually play the game.

What we learned

We learned a lot of object oriented programming for this project, as well as how to use github properly (which was harder than we thought it was going to be) .

What's next for Ultimate Tic-Tac-Toe

In the future, we thought it would be neat if Ultimate Tic-Tac-Toe could be hosted on a website so that it could be played by anyone with an internet connection. Additionally, we would love to improve the quality of our AI and make him an actually worthy opponent, perhaps with reinforcement learning or monte carlo tree search.

Built With

Share this project:

Updates