Computer Science Department
An AI Implementation of the Zimbabwean Board Game Tsoro
This project involves the design and implementation of a computer program that plays an ancient Zimbabwean board game called Tsoro. The main objective of the project is to develop an algorithm that allows a computer to play the game against a human; however the program will also allow two humans to play the game against each other. Tsoro comes in many different forms, but in all forms only two players can play the game at a time. At the beginning of the game the two players must agree on the number of holes the rows must have such that each row has the same number of holes. Furthermore, the players must also agree on the initial number of pebbles per hole such that each hole on the board contains the same number of pebbles. While the game allows the players to choose their own preferences, the standard Tsoro board usually has four rows with eight holes per row and an initial state with two pebbles in each hole. The two players alternate moves. The first player to move is chosen either by mutual agreement or some random process such as a coin toss. The player chooses one hole from his/her set of holes, collects all the pebbles in that hole, and then distributes them one per hole in the succeeding holes going in one direction either clockwise or counterclockwise. This process is called seeding. If the last pebble falls into a non-empty hole in the outer row, the player collects all the pebbles in that hole and repeats the seeding process. Otherwise, if the last pebble falls into a hole in the inner row, the player takes all the pebbles in the opponent's two holes in the same column as the hole the pebble fell in and repeats the seeding process again. A player's turn ends if the last pebble falls into an empty hole in the outer row or in a hole in the inner row for which the opponent's holes in the same column are empty. The first player to 'capture' all of his/her opponent's pebbles wins.