HsTZAAR is a computer program to play TZAAR, a 2-player abstract strategy game designed by Kris Burm and the final game in the GIPF project. HsTZAAR is written in Haskell and allows for local play against a computer AI; it also provides a good interface for programmers to implement diferent AI strategies.
This program was based on the htzaar implementation by Tom Hawkins. In 2010, I started experimenting with classical AI techniques for TZAAR and implemented them on-top of htzaar; since the later package is no longer updated, I decided to start HsTZAAR.
The main improvements are:
Although the minimax search is not very deep, the AI is already a good opponent at level 1.
HsTZAAR requires a resonably recent GHC compiler (version 7 or newer) plus the gtk2hs, cairo and glade libraries. It was tested on an Ubuntu GNU/Linux system, and should compile and run fine on other Linuxes. I also verified that it compiles under Mac OS X (snow leopard) and Windows XP.
You can download the source package from HackageDB site (alternatively use this local copy). To compile and install use the following shell commands (where x.y is the package version):
tar xvzf hstzaar-x.y.tar.gz cd hstzaar-x.y runhaskell Setup.hs configure runhaskell Setup.hs build runhaskell Setup.hs install
You can also download and install in one step using the Cabal install tool:
cabal install hstzaar
Cabal installs in your home directory by default; you
can do a global install with the --global flag.
In that case both the binary and an XML file with GUI data will
be installed in a system wide locations (e.g. /usr/local/bin and /usr/local/share/hstzaar).
For the benefit of users who don't want to install Haskell development tools, I have prepared a Windows 32-bit installer: hstzaar-0.9-setup.exe.
This also installs the necessary GTK+ runtime libraries on the private program directory, it does not install anything into the system directories.Please contact me you enjoy this game or if you have some suggestion. I'm particularly interested in remarks on how the AI plays and suggestions on how to make better.