home | help
FAIRYMAX(6)	       User Contributed Perl Documentation	     FAIRYMAX(6)

NAME
     fairymax - xboard-compatible chess and chess-variant engine 'Fairy-Max'

SYNOPSIS
     fairymax [hashSize] [iniFile]

     shamax [hashSize] [iniFile]

     maxqi [hashSize] [iniFile]

DESCRIPTION
     fairymax is a program that plays chess and chess variants.  It uses the
     xboard/winboard chess-engine protocol to communicate.  Apart from 'regular'
     chess (also known as the Mad-Queen variant), it can play Capablanca chess,
     gothic chess, janus chess, knightmate, cylinder chess, berolina chess, su-
     perchess, makruk (Thai chess, and also some of its variants, Cambodian
     chess (Ouk), asean chess and ai-wok), courier chess, Seirawan chess, Spar-
     tan chess, falcon chess, great shatranj, team-mate chess, charge of the
     light brigade, king of the hill, bifurcator chess, Los-Alamos chess, Mexi-
     can chess, Ciccolini's chess, grande acedrex, wildebeest chess (almost),
     shuffle chess without castling and chess with different armies (all combi-
     nations of the FIDE, Clobberers, Nutters and Rookies armies).  Fairy-Max
     can be easily configured by the user to play other variants as well, by
     modifying the ini file.  This ini file describes the rules of movement of
     the participating pieces and the initial board setup.

     Fairy-Max can also play shatranj, but in this case is not aware of the sha-
     tranj rule that a bare king loses.  So it might play sub-optimally in the
     late end-game.  A version of Fairy-Max adapted to implement the baring rule
     (and the rule that stalemate is a win) is available under the name shamax.
     Grande Acedrex and Courier Chess might also have had a baring rule, so you
     may want to play these with shamax instead of fairymax too.

     Similarly, a version of Fairy-Max adapted to play Xiang Qi (Chinese Chess)
     is included in the fairymax package as well, under the name maxqi.

     fairymax is a derivative of the world's (once) smallest chess program
     (source-code wise), micro-Max.  The latter measures less that 2000 charac-
     ters, (about 100 code lines), and has a computer rating of around 2050 on
     the CCRL rating list.  Although this is about 1000 rating points behind the
     world champion, micro-Max still makes a quite tough opponent even for club
     players, but it is not unbeatable.

     The main difference between micro-Max and Fairy-Max is that the latter
     loads its move-generator tables, which specify how the various pieces move,
     from an external file, so it can be easily adapted to incorporate un-ortho-
     dox pieces.  For ease of use of the artificial-intelligence, Fairy-Max is
     equipped with I/O routines that allow it to run with the xboard graphical
     user interface.

     See xboard(6) for instructions about how to use fairymax through xboard. To
     start up quickly, you just need the command: xboard -fcp fairymax.  Note
     that to be able to play the chess variants, it is recommended to use the
     latest XBoard version, as some of the recently added variants will use fea-
     tures not supported by older XBoard versions.

     Fairy-Max supports multi-PV mode: by specifying a non-zero multi-PV margin
     in the Engine-Settings dialog of XBoard, Fairy-Max will not only print the
     principal variation for the best move, but also for every move that ap-
     proaches the score of this best move to within the set margin.  (If it does
     not find the best move on the first try, this might lead to printing of a
     few extra lines below the threshold.)  Fairy-Max now also supports analysis
     mode, and exclusion of moves from the analysis.

     Amongst the move types supported by Fairy-Max are normal leaper and slider
     moves, (e.g. knight and rook), divergent moves (i.e. capture and non-cap-
     ture moves can be different), hoppers (which jump over other pieces, such
     as the Chinese cannon or the grasshopper), lame leapers (the move of which
     can be blocked on squares they cannot move to, such as the Chinese horse
     and elephant), limited-range sliders (upto range 5), and any combination
     thereof, in every possible direction.  The board width is configurable upto
     a width of 14 files, and cylindrical boards (where left and right edge con-
     nect) are supported as well.  The board height can be configured up to 16
     ranks.

OPTIONS
     hashSizeIf the first argument to fairymax is numeric, it is taken as an in-
	     dicator for the amount of memory Fairy-Max is allowed to use for
	     its internal hash table.  The default value for this argument, 22,
	     would result in a memory usage of 48MB.  Each next-higher number
	     doubles the memory usage, each next-lower halves it.  Running with
	     less than 6MB (i.e. argument 19) is not recommended.  When fairymax
	     is running under xboard 4.3.15 or later the hash-table size can be
	     set through the xboard menus, making this argument superfluous.

     iniFile A second or non-numeric first argument is taken as a filename.
	     Fairy-Max will use the mentioned file in stead of its default
	     fmax.ini file to define the movement of pieces and initial setup of
	     the variants.  This makes it easier to define your own variants.

     INTERACTIVE OPTIONS
	     Fairy-Max also supports some options that can only be set interac-
	     tively, though XBoard's engine settings menu dialog.  These are
	     listed below:

     Resign Threshold
     Resign  If the Resign option is on, Fairy-Max will resign when its score in
	     centiPawns drops below the negated value of Resign Threshold.

     Claim draw after
	     The value of this option determines how many full moves must elapse
	     after a capture or pawn push before Fairy-Max will claim a draw.

     Multi-PV Margin
	     Moves that ly closer in score to the best move than the value of
	     this option (interpreted as centi-Pawn) will be emitted as alterna-
	     tive variations in Fairy-Max' thinking output.

     Ini FileThis option sets the name of the file Fairy-Max uses to retrieve
	     the game definition from, each time you start a new game.

     Variant fairy selects
	     Combobox to select what variant Fairy-Max will actually play when
	     variant 'fairy' is selected.  Variants defined with names fairy/...
	     in the ini file will appear as choices.  The introduction of en-
	     gine-defined variants in XBoard protocol has made this option obso-
	     lete, but Fairy-Max still uses it for selecting the different fla-
	     vors of chess with different armies.  This setting takes effect
	     when a new game in variant fairy is started.

     Makruk rules
	     Obsolete option, which selects whether makruk will be played with
	     Cambodian rules (allowing extra initial moves of King and Met), or
	     with the Ai-Wok super piece replacing the Met.  With recent XBoard
	     version these games would be directly available from XBoard's New
	     Variant menu as engine-defined variant.

     Clear Hash
	     Pressing this button will clear Fairy-Max' hash table, so that it
	     does not have any memory of what it calculated earlier.

     Info    Pressing this button pops up a short description of the current
	     variant.

     Save in hash file
	     Pressing this button when Fairy-Max is in analysis mode adds the
	     current position to the persistent-hash file for the current vari-
	     ant, with the latest score reported by the engine.  Positions in
	     this file are loaded before any game in Fairy-Max' hash table, pro-
	     tected from overwrite during the game, to define the score
	     Fairy-Max should give to the position at any search depth.

     Automatic persistent-hash dialog
	     Switching on this option will cause a dialog to pop up in any new
	     position you reach during analysis mode, asking you whether the po-
	     sition should be saved in the persistent-hash file for the current
	     variant.  Pressing OK will save the position with the latest score
	     from the analysis, while typing a number will assign that number of
	     centi-Pawn to the position instead.

FILES
     fmax.ini
	 The fmax.ini file from which Fairy-Max by default takes the piece and
	 game definitions is a self-documenting text file, which contains in-
	 structions for how to define new pieces and chess variants.  Next to
	 the definitions of all variants Fairy-Max can play, it contains an ex-
	 tensive list of pre-defined pieces, incuding many not occurring in any
	 of the pre-defined variants.  The user can draw on these to define his
	 own variants.

     Persistent hash
	 Some of the interactive options can be used to store the current posi-
	 tion in a file bearing the name of the variant being played, with the
	 extension .hash added to it, during analysis.	Positions in that file
	 will be loaded into Fairy-Max' hash table before every game, protected
	 from overwrite.  This can be used to create an opening or end-game book
	 for the variant.  This can for instance be used to discourage opening
	 lines the engine overrates.  The file will be created in the current
	 directory, but at the start of a game both this file and a similar one
	 in Fairy-Max' private data files will be loaded.  The install does con-
	 tain such a persistent hash file for makruk, to help Fairy-Max find the
	 checkmate in the difficult corners of the KMMMK and KNMMK (with like M)
	 end-games.

AVAILABILITY
     At http://hgm.nubati.net/cgi-bin/gitweb.cgi the source code can be ob-
     tained.

SEE ALSO
     xboard(6)

     explanations: http://www.chessvariants.org/index/msdisplay.php?itemid=MS-
     fairy-max

     micro-Max: http://home.hccnet.nl/h.g.muller/max-src2.html

     XBoard: http://hgm.nubati.net

STANDARDS
     WinBoard, xboard(6) interface ("Chess Engine Communication Protocol")

AUTHOR
     H.G.Muller <h.g.muller@hccnet.nl>.

     This manual page was generated with pod2man(1).

perl v5.42.3			   2016-03-16			     FAIRYMAX(6)

home | help