Fanorona for GNOME

By John Stracke

Made in GLADE

(See also my Android version.)


To-do list

Send email

Fanorona for GNOME (not "GNOME Fanorona", since it isn't part of the GNOME games package) is an implementation of Fanorona, a traditional board game from Madagascar. For details on how Fanorona is played, see the online help.

The AI player is pretty basic: it looks ahead a specified number of steps and picks out the best move. "Best" is defined as "leading to the board with greatest value", where "value" is the number of pieces the AI has left minus the number of pieces the human has left. If there are more than one move leading to the same maximum value, the AI picks one at random. This leads one odd quirk: if the human player has one piece left, which the AI could take immediately, and the human cannot escape, then the AI will see that all of its possible moves are equally valuable, and just start picking at random; it may take the last piece right away, or it may dither around for a bit first.

The number of steps ahead the AI player looks can be set in the preferences. The default is 3, which lets the AI play pretty well, and doesn't take too long. It can be set as high as 10, but more than 5 is probably going to be prohibitively slow.

The game is internationalized. So far, we have four translations: Spanish, Japanese, French, German, and Malagasy (the language of Madagascar, where Fanorona comes from). (I did the German myself, though, and it's probably kind of rough; my German is ten years rusty.) If you want to do a translation, see the instructions in LOCALIZING.txt (not included in the binary RPM).

Version 1.1.1 dumbs down the FLTK version a bit so it'll run faster on the Agenda. It's still adequately challenging (it can beat me, at least), but it's much more playable. Release 2 of 1.1.1 fixes a long-standing bug in the RPM: previously, all the files were installed under my username. This didn't actually break anything (it just gave a warning at install time), but it's ugly. Now, all files get installed as user root, group games.

Version 1.1 adds an FLTK implementation, which can be compiled for the Agenda VR3 handheld. (It might also work on any Linux-VR device, but the Agenda's what I have.) For instructions, see INSTALL. The user interface is a subset of the GNOME interface, so I haven't provided separate documentation; just read the GNOME docs.

Version 1.0 makes the size of the window persistent; that is, if you resize the game, it will remember that size the next time it runs.

Version 0.7.0 fixes the problems that were keeping it from compiling on Mandrake. It also fixes some problems that were keeping the RPM target in the Makefile from working if you were compiling from the tarball distribution (I'd only ever tried building from my own CVS tree).

Version 0.6.2 adds Malagasy and a slightly nicer drawing of the board (the diagonal lines are mitred, ooh ahh).

Version 0.6.0 adds the ability to save the game, and shows the user which spaces they've already moved through this turn (since you aren't allowed to cross back over your path).

Version 0.5.0 adds limited theme support in the board widget; if you go into Preferences and select "(Theme)" in the "Color Scheme" menu, the board will be displayed using colors chosen from your theme. Unless you have a theme you've customized to include colors specifically for Fanorona, though, it'll probably look pretty boring. Oh, and it'll support background pixmaps from the theme, too.

A spelling mistake

The first releases of this program were called "Fanarona"; I was informed (by someone actually from Madagascar, no less) that I'd misspelled it; it's actually "Fanorona". Big search-and-replace...

Some other Fanorona implementations