PlayAchi.java facilitates a game of Achi. It's a game similar to tic-tac-toe with a dynamically sized board. The only difference is when there is one empty spot left, players take turns sliding their tile into the empty position.
To determine the program's next best move, a game tree is used to store all possible configurations of the board and their associated score. Dynamic programming is used to optimize the algorithm.