Computer Science Department
This project involves the creation of a software program that will play two variants of go. The ancient Chinese game of go is an interesting game from a computer science perspective, since it has always been notoriously difficult to craft go-playing computer programs that play at a significant skill level. This project will not aim to create a program that plays a traditional go game, but rather one which can play the "first capture" and "most capture" variants of go. Both variants will be played on a 9x9 board, the standard size for beginners. The game of go is played by two players, who take turns placing black or white stones on a 19x19 grid. A player's stone is "captured" if it is completely surrounded by the opponents' stones. The object of the game is to "control territory" by placing stones so that they cannot be captured by the opposing player. The variant this project uses is called "first capture" go. The object of the variant is to be the first player to capture one or more of the opponent's stones. A second variant also encompassed by this program is called "most capture" go. This is just like first capture go, except that the game continues until neither player is able to capture an opponent's stone. Whichever player managed to capture the most stones wins. Both of these variants are often used when introducing new player to the game, since they allow a new player to understand the mechanics of capturing stones. The program will focus on using a neural network and machine learning to allow the computer to learn how to play these go variants. Through these techniques, the program will learn how to recognize when stones are in danger of being captured, as well as how to effect captures of opposing pieces.