amja / tictactoe

An implementation of Ultimate Tic-Tac-Toe with a MCTS-based AI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ultimate Tic-Tac-Toe

Created in the Autumn of 2016 at Brown University.

Why

Instead of choosing one of the three predefined projects, I chose to design my own. This involved a lot of independent work, since there was no helpful handout for what I was doing. I had always enjoyed Ultimate Tic-Tac-Toe and thought it would be an interesting challenge to implement it.

What

This project was written in Java, which we learned from scratch in the class. The graphical elements are using the JavaFX library. Much of the styling is done with JavaFX custom css. The main algorithm for the computer player is a Monte Carlo Tree Search. Since the gamespace is so large and it is hard to rank the quality of moves, MCTS seemed to be an appropriate algorithm. The project gives the user the option to play normal Tic-Tac-Toe or the Ultimate version.

This was the largest Java project I had designed and implemented so far and so was quite an exciting challenge.

A user guide, containing play instructions can be found here.

You can also play the game by downloading a JAR here.

About

An implementation of Ultimate Tic-Tac-Toe with a MCTS-based AI


Languages

Language:Java 99.4%Language:CSS 0.6%