Support programs for Pousse

Neil Smith home

Simulation models

Several OU students are doing their Master's project (M801) looking at game-playing programs (2006-7). The game being used as a testbed for this project is Pousse, as featured in the 1998 ICFP programming contest. I've put a few additional bits and pieces here for those students.

I have local copies of the task description, query log and FAQs, just in case the MIT site should go down.

When you're developing a game-playing program, note the clarification about repeated states in the query log.

The GUI

The contest page contains a link to a Pousse GUI. Unfortunately, that program only works on an old version of Mr. Ed Scheme, so I've updated it to run on the latest version of DrScheme, which includes Mr. Ed. Here is:

  • the Pousse GUI for DrScheme/Mr. Ed v301. This version also contains the code for the six finalist robots. Run it by starting the pousse program from within DrScheme.
  • you'll also need Mr. Ed Scheme. The easiest way is to download the entire DrScheme environment.

DrScheme runs on both Windows and Linux, so the GUI should work on Windows boxes. All the game-playing robots still seem to run on modern Linux systems (Fedora Core 3). Unfortunately, many of the students don't have Linux, so they won't be able to use the existing robots. There may, however, be a way around this...

Cross-compiling

All the entries have source code with them. The easy way to get them running is to find a Windows compiler for the programs and recompile them.

Duncan Elvin has done this for two of the entries: they've been recompiled under Microsoft Visual C++. They should still work with the tournament player. You can download Alpha-Beta Soupa ST (entry 3) and la (entry 42).

To install the entries, install the Pousse GUI as above. Copy the cross-compiled file to the <POUSSE_BASE>/tournament/robots/ directory then extract them from there to overwrite the Linux executables.

Running Linux

Many (most?) Linux distributions come on a Live CD, which allows you to boot Linux from a CD, without the need to install anything on your existing hard disk. Most of them should then be able to mount your Windows partitions on your hard disk and access files there. Here's a list of such distributions: I've heard good things about Knoppix and Ubuntu, but I've not tried any of them myself. If you don't want to download a CD yourself, you can buy them ready-made for a nominal sum from places like Linux Emporium.

Having a Linux Live CD may make it possible to run the existing Pousse programs. The process might go something like this:

  1. Take a backup. A full backup. Things should be fine, but you never know.
  2. Download the up-to-date GUI and unpack it somewhere convenient with something like WinZip.
  3. Download a Linux version of DrScheme. Don't try to install it, you won't get anywhere.
  4. Boot Linux from your Live CD
  5. From a Linux terminal, install DrScheme somewhere convenient on your hard disk
  6. Run DrScheme, then open and load the pousse program.
  7. Enjoy!

An alternative approach would be to use Cygwin, a Linux emulator that runs on Windows. I'm reliably informed that it's a breeze to install. You may need to add some packages to the base installation (such as GCC, the Gnu C Compiler and its libraries) as many of the Pousse robots may expect these to be already installed (run them and see how they complain). There is an option to install X Windows (the Unix-based GUI substrate) inside Cygwin (called Cygwin/X), which should then allow you to use graphical front-ends, such as the Pousse GUI mentioned above.

Note that I've not tried either of these. If you try, let me know how it goes. If people are using the Cygwin approach, I'll try to write a small Bash script (think DOS batch file on steriods) that will play two Pousse robots off against each other. Also, there's an outside chance that I may get something running over the web, but that involves me finding time to set up my own server and learning enough web programming to make it work, so don't hold your breath.

The Tournament

As a bit of fun, I'd like to hold a tournament between all the game-playing robots developed as part of M801. A couple of the lecturers here at the OU (including me!) have agreed to take part. The tournament will include the robots from the 1998 ICFP contest. If you want to enter your robot in the contest, the standard rules apply, and it'll be run on my Linux box. That shouldn't be too much of a problem, as most programming languages have Linux ports.

More details nearer the time. Drop me a line if you want to know more.


This page maintained by Neil Smith (N.Smith@open.ac.uk)