The rules of Quixo are very simple. The game board is a 5x5 grid of cubes. Depending on the orientation, each cube may be showing either blank, an X, or an O. In turn, each player may remove either a blank cube or one of their own cubes from the periphery of the board. If a blank cube was selected, the cube is turned so that it becomes the player's piece (either an X or an O). The player may then insert the piece somewhere along the periphery of the board such that the other cubes slide into the blank space once occupied by the cube that was removed. The resulting board is a complete 5x5 grid. The cube may not be placed directly back to the spot where it was removed. You will always have 2 possible ways to insert the new cube if it was removed from a corner, otherwise you will have 3 possible ways to insert the cube.
The game is over when a player gets 5 in a row, either horizontally, vertically, or diagonally.
Your group project is to implement a computer program that can play Quixo. Help and information on how to do this will be given in class. I recommend that you implement your game in C or C++ for purposes of speed. At the end of the course there will be playoffs among computer programs, and the team with the winning program will get 5% extra credit.
You may wish to buy the actual board game. In lieu of this, however, you can play the game online.
A simple Java applet is below that demonstrates the Quixo game. Currently the game requires two players to be sitting at the same console, alternating turns. In the future, pending my workload, a networked version to allow remote play and a computer opponent may be added for you to test your own play and programs against.
This applet has not been tested robustly. If you find any errors or have questions, contact me at email@example.com.