View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

SqueakGo


Uploaded Image: SqueakGo-screen.gif SqueakGo Screenshot

Summary

SqueakGo is a Squeak (Smalltalk) implementation of the Go board game.

Members List (Alphabetical)

Des Iorgova
Jesus Alvarez
Nevedita Mallick
Srinivasan S Turuvekere

Description:

Go is an ancient Chinese strategy game that originated over three thousand years ago. Two players start with a rectangular board that usually goes between 9x9 for beginners to 19x19 for tournaments. One player uses black stones and the other white stones. The main goal is to surround the opponent stones to capture them. See the links area below for an introduction. There are a huge number of alternatives on a typical Go game. For example, on a game played with a 19x19 board, there are over 10^170 possible states. Go players are ranked by "dan", similar to the martial arts. A good Go player needs to plan his strategy several moves ahead and will sometimes use deception, allowing the opponent to capture a few stones before making a major capture. The name "Go" comes from the Japanese "Igo", which means "surrounding boardgame". In some ways Go is similar to Othello but requires much more strategy from the player.

There are many computer implementations of Go. GNU Go is a well-known C implementation that is considered the standard among the non-commercial programs. As is the case with many computer games, GNU Go decides its moves based on machine learning algorithms. It determines its strategy by identifying patterns from a history of previous games. There are also several Java implementations, including the Orego and Atari-Go listed on the links page. The computer implementations of Go do not do as well as top Go masters, e.g. it is not like Chess where IBM's Deep Blue and others can occasionally beat master players. Yet several Go engines have done relatively well. GNU Go won the 19x19 Go tournament on the 2006 Computer Olympiad.

There does not appear to be any popular Go implementations using Smalltalk. Possibly our SqueakGo will be the first one. Our main goal with the project is to create a working implementation of the Go game using the object oriented design methodologies learned in the class. We will support not only local players but also remote players (via TCP/IP). The more popular computer implementations of Go use a well-defined protocol called GTP (Go Text Protocol) that allows very different systems to exchange moves over a network. SqueakGo should also be entertaining and fun (after all, it is a game!).

Milestones

  • Milestone A (Jul-15-2006): Implement human vs. human playing Go on the same computer. The game should end at first capture or when both players pass consecutively.

  • Milestone B (Jul-22-2006): Implement human vs. human playing Go on different computers. The game should end when both players pass. This milestone will include a "liberal" GTP protocol implementation since at this stage we only connect to other SqueakGo players.

  • Milestone C (Jul-29-2006): Implement human vs. Go Game Server game. Game should end when both players pass. This implementation will require strict implementation of the GTP protocol because we’ll be connecting to a Game Server and we will not be able to control the connection on both ends.

SqueakGo Installation

SqueakGo How to Play

http://www.cs.uiuc.edu/homes/jalvare1/SqueakGo/
SqueakGo Class Documentation

SqueakGo Class Hierarchy

SqueakGo Design Patterns

SqueakGo Project Files

SqueakGo Possible Enhancements

SqueakGo Discussion

SqueakGo Links (17 Links on Go)

Link to this Page

  • Class projects last edited on 2 April 2008 at 5:20:59 pm by vpn3-144241.near.uiuc.edu