Fairy-Max 4.8 released
Posted: 18 Oct 2007, 22:42
I just put an alpha version of fairy-Max (h) on my website, replacing the alfalfa version (g). It seems that this version, with the posted .ini file, now plays a flawless game of Capablanca Chess. I haven't tested any of the other games (except FIDE Chess, which seems to work too).
Fairy-Max should be able to handle almost arbitrary fairy pieces, provided you give it the description of how the piece moves. This is done by specifying the directions in which the piece moves, where each direction can have its own set of 'move-rights' bits, which determine if the move in that direction is a leaper, a slider or a hopper, and if captures and/or non-captures are allowed in that direction.
Fairy-Max is a Winboard engine, and to display the fairy pieces the /renderPiecesWithFont feature of Winboard_x is suitable. To use other board sizes (upto 12x8 currently supported), one would need Winboard_F, though, which I haven't released yet. But 10x8 (Capablanca) might work under ChessGui.
Basically Fairy-Max 4.8 is a close derivative of microMax 4.8. I made no special attempt to make it as small as possible. I did not have to add too much code, though; the main difference is really that the tables describing the piece moves that were coded as initialized data in uMax, are read from the .ini file in FMax. To support the weirder fairy pieces, I added a table of leaper/slider and capture/non-capture indicators for every direction, where uMax recognized these destinctions in a hard-coded way from the piece type. Basically just a couple of lines are added, although many lines are now somewhat longer. (I could not exploit many of the tricks to make expressions short for board-sizes that were not a power of two, and it is also a pain to write castiling code that works on any board size.)
Testers be forewarned: Although FMax can play FIDE Chess, due to its close relationship to uMax it is expected to play almost identically. There is thus no reason at all to play FMax in tournaments for ordinary FIDE Chess. For FIDE Chess FMax should be considered a clone!
Fairy-Max should be able to handle almost arbitrary fairy pieces, provided you give it the description of how the piece moves. This is done by specifying the directions in which the piece moves, where each direction can have its own set of 'move-rights' bits, which determine if the move in that direction is a leaper, a slider or a hopper, and if captures and/or non-captures are allowed in that direction.
Fairy-Max is a Winboard engine, and to display the fairy pieces the /renderPiecesWithFont feature of Winboard_x is suitable. To use other board sizes (upto 12x8 currently supported), one would need Winboard_F, though, which I haven't released yet. But 10x8 (Capablanca) might work under ChessGui.
Basically Fairy-Max 4.8 is a close derivative of microMax 4.8. I made no special attempt to make it as small as possible. I did not have to add too much code, though; the main difference is really that the tables describing the piece moves that were coded as initialized data in uMax, are read from the .ini file in FMax. To support the weirder fairy pieces, I added a table of leaper/slider and capture/non-capture indicators for every direction, where uMax recognized these destinctions in a hard-coded way from the piece type. Basically just a couple of lines are added, although many lines are now somewhat longer. (I could not exploit many of the tricks to make expressions short for board-sizes that were not a power of two, and it is also a pain to write castiling code that works on any board size.)
Testers be forewarned: Although FMax can play FIDE Chess, due to its close relationship to uMax it is expected to play almost identically. There is thus no reason at all to play FMax in tournaments for ordinary FIDE Chess. For FIDE Chess FMax should be considered a clone!