Example Programs

Here are some computer programs that I wrote or worked on. Most programs that I wrote for other companies are owned by those companies so I can't provide them here. This leaves my with the hobby projects, which are mostly small game type programs.

These programs are listed in the order that I wrote them.


Pente is a strategy game for two players. I wrote a version for Unix and X windows that lets you play against another person or against the computer. I wrote it to learn more about some AI techniques, such as pattern matching and simulated annealing. In the end I discovered that computers play Pente better with a simple tree search system. Oh well. At least I learned how to write a widget set for X11. Click on the screen shot for more information. Because Pente is copyrighted, I cannot right now give away the source code.


I'm a big fan of the Chinese/Japanese strategy game go. Cgoban is a Unix/X Windows utility that lets you play, view, and edit go game records, and also connect to one of the internet go servers. Click on the screen shot for more information and the source code.


For a little while, I worked on a computer go player. I called it Perception. After about two months of work, I decided that I didn't want to put in the time that I'd need to do a decent job of it. I was only working on it a few hours a week, and at that rate would spend all my time trying to remember what I'd been up to instead of working on new code. You can still follow the link to see what I'd done with it if you want.

Tsume Go Of the Day

Another go-related project. Thomas Wolf wrote a program that invents tsume-go problems (tsume-go problems are approximately like chess puzzles, but they are for go instead). I wrote a combination of Unix shell scripts and C programs to take the output of his problem generator and turn it into HTML documents and GIF images. Every day two new problems appear. Follow the link to see this page.


Backfract is a mandelbrot viewer. It isn't interactive; instead it paints the mandelbrot set on your background window. Every 15 minutes it will randomly zoom in or out on the set so you get a constantly changing fractal wallpaper. Click on the image for more information and the source code.

Rush Hour

I wrote a Java applet that plays the Rush Hour puzzle game. If your browser can run Java then you can play it by clicking on the image to the right. I also wrote a program that invents new Rush Hour puzzles; I have it set up to install three new Rush Hour puzzles every week. Rush Hour (the actual game, not this applet) is published by Binary Arts.

The KGS Go Server

KGS is a server that lets you play go over the internet. It has many features not found on other go servers, including the ability to cooperatively edit games, including variations and markups, to review them after they end, a Java client that can be played from your web browser or downloaded and used locally, and multilingual support. Log in and try it out!

Home Page

wms@igoweb.org 20 November 2003