Fairy-Max is an AI, also called 'engine', for playing Chess variants.
It is free open-source software.
It was created for the purpose of empirically evaluating fairy pieces,
by allowing those to participate amongst orthodox Chess pieces
in Chess games aimed at checkmating an opponent royal piece.
It searches ahead like the FIDE-Chess engine from which it was derived
(the World's once smallest Chess program, micro-Max)
by generating moves and trying them out on the internal board.
To know how each piece type moves, micro-Max uses tables with step vectors,
and it knows which pieces are leapers and which are sliders.
In Fairy-Max, the contents of these tables is not fixed,
but is loaded from a configuration file 'fmax.ini' at the start of each game.
This allows the user to change the way pieces move
(or add pieces of his own design) without changing the program,
by altering the contents of the fmax.ini file.
Fmax.ini is a normal text file and thus can be modified with any text editor
(e.g. Notepad).
Fairy-Max is 'only an AI'.
This means it does not provide any graphics to display the position of the game it is playing,
but only relays the moves as text.
It is primarily designed to be run as an engine inside the WinBoard GUI,
(or its Linux counterpart XBoard),
and it communicates with this GUI in 'WinBoard protocol'.
Although there are several other GUIs that support WinBoard protocol,
they will in general not offer as much variant support as WinBoard / XBoard.
Most GUIs only support normal Chess,
but ChessGUI by Matthias Gemuh also supports 10x8 Capablanca variants.
Note that there are also many other WinBoard-compatible engines for
playing variants that can be played under WinBoard 4.3 or higher.
Some even play variants that Fairy-Max could never implement
(e.g. Xiangqi or Crazyhouse).
There are however some dedicated versions of Fairy-Max that are adapted to variants
with very unique needs,
such as the Shatranj baring rule, or the confinement of pieces to certain board areas in Xiangqi.
These versions, known as ShaMax and MaxQi, respectively, are in general only useful for playing
a single Chess variant, and are included in the downloads listed at the top of this page.
There also is a derivative 'Looking Glass', which plays Alice Chess.
There also exists a special research derivative 'Pair-o-Max',
which does take into account mating potential in the late end-game.
Setup
Fairy-Max can be downloaded in both Windows and Linux versions
through the links at the top of this page.
It is also included in the standard distribution of WinBoard, however,
where it is pre-installed as primary engine, and can be started from the Windows Start menu.
The Windows Fairy-Max package contains the engine executable,
the fmax.ini (which contains its own format description),
and the engine source code, all grouped inside a folder.
To install it, just extract this folder to a suitable place on your hard disk.
Recommended is to put this folder next to the one where you installed WinBoard.
WinBoard has a Load Engine dialog in its Engine menu,
which you could use to install Fairy-Max (or any other engine) by simply pointing out the exe file in a file-browse dialog.
It needs no special parameters or options.
Fairy-Max' hash table size can be set through WinBoard's Common Engine Options dialog,
and is responsible for almost its memory usage.
(It is rounded down to 12 times a power of two, e.g. 48MB, 96MB, 192MB)
If this does not comfortably fit in memory together with the
engine process of the opponent (if there is a computer opponent),
Fairy-Max will not run properly, and you would have to reduce the hash size.
For a detailed explanation of the variants that Fairy-Max can play,
see the website of chessvariants.org
The piece descriptions in the fmax.ini file are grouped into variants,
so that setting the engine to a certain variant (from the User Interface),
will load the group of piece descriptions for that variant.
The Fairy-Max download comes with an fmax.ini that predefines
several variants
(FIDE Chess, Capablanca Chess, Shatranj, Courier, Knightmate, Cylinder Chess),
which can serve as an example for those that want to implement their own variants.
In addition, the fmax.ini file contains definitions of the most common fairy pieces not participating in the predefined variants,
so that the user can draw on them when composing his own variants.
Although Fairy-Max supports merely 15 different piece types,
this is only a limitation to the number of different piece types that
can participate simultaneously in a single game.
In a game of another variant, all 15 pieces could move completely differently.
Table 1: Variants pre-defined in the supplied fmax.ini
normal
FIDE's good old mad-queen game
shatranj
Arabic precursor of Chess with Elephants in stead of Bishops (best played with ShaMax)
capablanca
10x8 variant with Archbishop and Chancellor
gothic
Patented variant similar to Capablanca, with a more exciting opening setup
courier
12x8 Medieval variant, combining Shatranj pieces with the modern Bishop
knightmate
King moves like Knight, and vice versa
cylinder
The board has no left or right edges, pieces wrap around
berolina
8x8 variant where Pawns capture straight ahead, and move diagonally
super
Superchess, an 8x8 shuffle variant with 4 super-pieces, including Amazon
great
Great Shatranj, a 10x8 variant where all sliders are replaced by corresponding short-range pieces
seirawan
S-Chess, where a R+N and B+N compund start in hand and can be gated onto the 8x8 board
spartan
Spartan Chess, where a completely unorthodox army with two kings (the Spartans) battle the regular (Persian) FIDE army
makruk
Thai Chess, a Shatranj-like variant where Elephants are replaced by Gold Generals, and Pawns start on 3rd rank
falcon
On 10x8 with two 'falcon' pieces (multi-path lame (1,3)+(2,3) leapers)
-
Chess with Different Amies: the FIDE army, the Colorbound Cobberers, the Nutty Knights or Remarkable Rookies battle each other
xiangqi
Chinese Chess (9x10 board) with Elephants, Cannons, and a King confined to a 3x3 Palace
(only with MaxQi)
fairy
A catch-all variant, in which by default any piece can participate.
Fairy-Max redefines the meaning of this variant as specified by a combobox option.
The board size for each variant is also defined in the fmax.ini file,
and is currently limited to 12x8.
(Expansion of the number of ranks is on the to-do list.)
The default opening position is also defined in there,
but can be overruled by loading a position through the User Interface.
Pieces
Table 2: attributes that can be combined to define a move type
C
capture
target square is valid if occupied by enemy piece
N
non-capture
target square is valid if empty
T
terminate
move cannot continue, even if target square is empty
H
hopper
move can continue if target square was occupied
W
wrap
treat board like left edge borders right (cylinder board)
M
multi-path
special move mode for Falcon in Falcon Chess
Apart from Pawns, orthodox Chess pieces only come in two different types:
leapers and sliders.
Leapers can only do one step of a given type,
while sliders can repeat their elementary step indefinitely,
as long as they do not encounter an obstruction (piece or board edge).
If the obstruction is an enemy piece, it can be captured,
(both by leapers and sliders),
but the move cannot continue after that even for a slider.
As not all fairy pieces fall in the slider or leaper category,
Fairy-Max implements two additional move types: hoppers and alternators.
Hoppers are sliders that can jump over the first obstruction in their path,
and continue from there, with possibly a different type of move.
The best known examples are the Cannon (Pao) from Chinese Chess,
and the Grasshopper.
The Pao changes its move type from 'non-capture only' to 'capture only' on hopping.
The Grasshopper changes it from 'none' to 'both' (capture and non-capture),
and in addition changes from slider to leaper.
(It is only allowed to do one step after the hop,
in contrast to the Pao, which remains a slider after hopping.)
Alternators are pieces that do not need to hop over anything to change
their move type, but do so spontaneously after every step they make.
This can be a change in step direction, to provide bend trajectories,
but also in capture rights.
E.g. a Xiangqi Elephant makes 2 diagonal steps in the same direction,
on the first step it is not allowed to do anything (capture or non-capture) but continue, (if the square is empty, of course),
on the second step it can both capture and non-capture (but is not allowed to continue any further, even if the square was empty).
The Xiangqi Horse is similar, but also changes direction between the first and second step.
The Crooked Bishop is an example of a slider that changes direction on every step.
This means both its primary and secondary step allow slider-like continuation.
After the second step it switches back to its first,
and continues alternating on every subsequent step.
For simplicity, Fairy-Max treats every slider that is not a hopper as an alternator.
In cases where this is not desired (e.g. for the Rook),
it simply 'alternates' between two identical steps.
To provide flexibility in implementation of fairy pieces,
the discription of the move type has to be given for each direction separately,
rather than for the piece as a whole.
This to allow mixed sliders/leapers, such as the Archbishop,
which combines the Knight (leaper) and Bishop (slider) moves.
For implementation of hoppers and alternators,
the move description (direction and type) has to be given twice
(primary and secondary move descriptor).
The method used for that in the fmax.ini file is to specify
which bits should change to make the secondary step and move rights out of the primary.
This info can be used to change them in both directions (primary -> secondary and secondary -> primary),
which is convenient for alternators.
It also means that for 'normal' pieces, where nothing changes as primary and secondary step are the same,
the secondary rights and step are all zero, and don't have to be written.
Since version 4.8S a 2-bit 'delay count' can be specified with each piece
to delay the first toggle between primary and secondary step type by 1, 2 or 3 steps,
which allows implementation of limited-range sliders of ranges upto 5.
Fairy-Max makes no assumptions to the symmetry of the piece,
meaning that all directions in which the piece moves have to be specified explicitly.
E.g. for a Rook we have to list 4 moves, for a Knight 8.
However annoying this sometimes might be,
this is necessary for allowing implementation of
asymmetric pieces such as the Crab or the Shogi Generals.
Unfortunately, Fairy-Max is not smart enough yet to realize that the different
sides play in opposite direction.
Thus asymmetric pieces (such as Pawns) have to be implemented as different
piece types for white and black.
(E.g. what is a Crab for white, will be a Barc for black, and vice versa.)
The following pieces have predefined descriptions in fmax.ini,
ready for copying to your own variants.
Table 3: Pieces that are pre-defined in the fmax.ini that comes with the download
SIMPLE LEAPERS
COMPOUND LEAPERS
LEAPER-SLIDER COMPOUND
SLIDERS
LAME LEAPERS
CYLINDER PIECES
Ferz
King / Commoner
Archbishop
Bishop
Elephant (Xiangqi)
Cylinder Bishop
Wazir
Bison
Chancellor
Rook
Horse (Xiangqi)
Cylinder Rook
Knight
Wildebeest
Caliph
Nightrider
Falcon
Cylinder Knight
Dabbaba
Carpenter
Canvasser
Queen
SEPARATE CAPTURE
Cylinder Queen
Elephant (Alfil)
Kangaroo
Amazon
Crooked Bishop
FIDE Pawn
Cylinder Pawn
Camel
High Priestess
HOPPERS
LIMITED RANGE
Shatranj Pawn
Zebra
Minister
Grasshopper
Rook-3
Quing
Crab / Barc
Cannon (Xiangqi)
Bishop-4
Keen
Rules
This section gives an indication of how the Chess variants are defined
in the fmax.ini file.
After a line "Game: " to indicate that a new variant description follows,
we have lines that specify the board size,
and the back rank of the array for white and black.
(Fairy-Max always assumed a close rank of Pawns directly in front of that.)
A name can be prefixed with "fairy/", meaning that it is not supported by WinBoard,
and has to be played as the catch-all vatiant "fairy".
An engine option (appearing in the GUI's Engine Settings dialog)
will in this case determine what variant is really played (identified by the part of the name after the slash).
The variant name can be followed by a # and extra information.
In such a case Fairy-Max will send a 'setup' command to the GUI to inform it of the default opening
position for the variant, possibly accompanied by the info behind the #,
which designates the one-letter piece ID with which the GUI should represent the various pieces.
After the three initial lines follow the descriptions of all participating pieces,
one line per piece.
For each piece, we have to give the letter by which it is represented
when feeding a position to the engine,
and the value the engine should attach to it in play.
(So beware, Fairy-Max is not smart enough to figure this out by itself.
If you tell it an immensely powerful piece like a Queen is only worth half a Pawn,
it will happily trade it for one!)
Then follows on the same line a list of move descriptors,
one for each direction the piece moves in.
A move description consists of an elementary board step,
and a number that specifies the move attributes,
i.e. what the piece is allowed to do in this direction
(if it can capture and/or non-capture, if it is leaper or slider,
if it can hop over an obstacle or not,
if it respects the board edges or wraps around.)
The exact way the step vectors and attributes are encoded
is specified in comment lines contained in the fmax.ini,
as it might still be subject to change in future versions.
The first two pieces specified are by definition the white and black Pawns.
That means that Fairy-Max will let them promote if they reach the last rank.
Fairy-Max does not think about under-promotion,
but always promotes to 'Queen', i.e. the 7th piece specified, however that may move.
Except when piece number 7 only appears in the initial setup for white,
and a piece with number 9 occurs in the initial setup for black,
in which case black would always promote to piece 9
(to allow variants with different armies).
Any piece with a negative value is considered royal.
Fairy-Max makes a difference between value -1 and other negative values, though:
-1 indicates absolute royalty, i.e. loss of any piece of this type means loss of the game.
Other values indicate only loss of the last royal piece result in loss of the game,
and any spare ones should be treated as if they are worth the absolute value of the given number.
This allows for variants with 'delocalized royalty', such as Spartan Chess.
Notes
There are many things that Fairy-Max cannot do; it was never meant to be a general game-playing system like Zillions of Games.
Amongst the impossibilities are piece drops, (as in Crazyhouse or Shogi),
pieces for which the moves are dependent on their location on the board
(as in Xiangqi, but MaxQi handles this particular case).
and pieces whose moving exerts side effects on other squares that their old and new location
(with the exception of castling and e.p capture).
For some pieces the move is simply too complicated to fit within the Fairy-Max move-type classification system (e.g. Rose, Griffon).
Only boards with 8 ranks are currently implemented.
The current version of Fairy-Max implements e.p. capture in such a way that it also correctly handles Berolina Pawns,
and allows castling with any corner piece.
Playing Tips
Positional evaluation in Fairy-Max is fairly primitive:
a piece either is drawn towards the center, or not.
If you want a piece to be drawn to the center,
you should indicate it by a lower-case letter.
Pawns do get a large positional bonus when they reach 6th or 7th rank,
of 64 and 128 units ('centiPawn' in FIDE Chess), respectively.
This assumes that the piece to which the Pawns will promote is of decisive value,
so the opponent will have to sacrifice a piece to stop the promotion.
Unfortunately, this does not work very well in Shatranj and Courier Chess,
where Pawns promote to the worthless Ferz.
Recent versions of Faiy-Max divide this bonus by 8 in cases where a "Queen"
(the piece to which Pawns promote by default)
is worth less than 250 centi-Pawn, to repair this problem.
Nevertheless, the strategy of Fairy-Max is tailored too much to normal Chess, with normal Pawns
to be a really good Shatranj or Courier player.
Equipment
Fairy-Max runs on a PC under any Windows operating system.
The memory demand is determined by the size of its hash table,
which by default is 96M.
It would still run with a smaller hash table,
but the larger the hash table, the better its play.
Running with a hash table smaller than 6MB is not recommended.
Recently also versions that can run on other platforms, such as Linux, were released.
Contact
Questions about Fairy-Max can be posted as comments to the Fairy-Max page
on the chessvariants website,
which are checked regularly by H.G. Muller,
and of which this page is an adapted version.
Written by H.G. Muller.
WWW page created: July 8, 2008. Last updated: February 28, 2013.
fairymax-5.0b/Makefile 0000664 0000000 0000000 00000004770 12661160032 0015005 0 ustar 00root root 0000000 0000000 srcdir = .
prefix = /usr/local
bindir = $(prefix)/bin
mandir = $(prefix)/share/man
datadir = $(prefix)/share
plugindir = $(datadir)/games/plugins
fairydir = $(datadir)/games/fairymax
CC?=gcc
CFLAGS?= -O2 -s
INI_Q?=$(fairydir)/qmax.ini
VERSION?=`grep 'define VERSION' fairymax.c | sed -e 's/.*"\(.*\)".*/\1/'`
ALL= fairymax shamax maxqi fairymax.6.gz
all: ${ALL}
fairymax: fairymax.c
$(CC) $(CFLAGS) $(LDFLAGS) $(CPPFLAGS) -DFAIRYDIR=\"${fairydir}\" fairymax.c -o fairymax
shamax: fairymax.c
$(CC) $(CFLAGS) $(LDFLAGS) $(CPPFLAGS) -DFAIRYDIR=\"${fairydir}\" -DSHATRANJ fairymax.c -o shamax
maxqi: maxqi.c
$(CC) $(CFLAGS) $(LDFLAGS) $(CPPFLAGS) -DINI_FILE=\"${INI_Q}\" maxqi.c -o maxqi
install: ${ALL} ${srcdir}/data/*
install -d -m0755 $(DESTDIR)$(bindir)
cp ${srcdir}/fairymax ${srcdir}/shamax ${srcdir}/maxqi $(DESTDIR)$(bindir)
install -d -m0755 $(DESTDIR)$(fairydir)
cp ${srcdir}/data/*.ini $(DESTDIR)$(fairydir)
cp ${srcdir}/data/*.hash $(DESTDIR)$(fairydir)
install -d -m0755 $(DESTDIR)$(mandir)/man6
cp ${srcdir}/fairymax.6.gz $(DESTDIR)$(mandir)/man6
install -d -m0755 $(DESTDIR)$(plugindir)/logos
cp ${srcdir}/data/logo.png $(DESTDIR)$(plugindir)/logos/fairymax.png
cp ${srcdir}/data/logo.png $(DESTDIR)$(plugindir)/logos/shamax.png
cp ${srcdir}/data/logo.png $(DESTDIR)$(plugindir)/logos/maxqi.png
install -d -m0755 $(DESTDIR)$(plugindir)/xboard
cp ${srcdir}/data/*.eng $(DESTDIR)$(plugindir)/xboard
fairymax.6.gz: fairymax.pod
pod2man -s 6 fairymax.pod | gzip -9n > fairymax.6.gz
clean:
rm -f ${ALL}
dist-clean:
rm -f ${ALL} *~ data/*~ *.man md5sums
dist: fairymax
install -d -m0755 Fairy-Max
install -d -m0755 Fairy-Max/data
rm -f fairymax.tar fairymax.tar.gz
cp fairymax.c maxqi.c fairymax.pod Makefile README changelog copyright Fairy-Max
cp data/* Fairy-Max/data
(md5sum Fairy-Max/* Fairy-Max/data/* > Fairy-Max/md5sums) || true
tar -cvvf fairymax-$(VERSION).tar Fairy-Max
gzip fairymax-$(VERSION).tar
rm fairymax
rm Fairy-Max/data/*
rmdir Fairy-Max/data
rm Fairy-Max/*
rmdir Fairy-Max
uninstall:
rm -f $(DESTDIR)$(plugindir)/logos/fairymax.png
rm -f $(DESTDIR)$(plugindir)/logos/shamax.png
rm -f $(DESTDIR)$(plugindir)/logos/maxqi.png
rm -f $(DESTDIR)$(plugindir)/xboard/fairymax.eng
rm -f $(DESTDIR)$(plugindir)/xboard/shamax.eng
rm -f $(DESTDIR)$(plugindir)/xboard/maxqi.eng
rm -f $(DESTDIR)$(fairydir)/*
rmdir $(DESTDIR)$(fairydir)
rm -f $(DESTDIR)$(mandir)/man6/fairymax.6.gz
rm -f $(DESTDIR)$(bindir)/fairymax
rm -f $(DESTDIR)$(bindir)/shamax
rm -f $(DESTDIR)$(bindir)/maxqi
fairymax-5.0b/README 0000664 0000000 0000000 00000001631 12661160032 0014216 0 ustar 00root root 0000000 0000000 This package contains the sources of the XBoard-compatible Chess and
Chess-variant engine Fairy-Max, and its dedicated derivatives ShaMax
(for Shatranj) and MaxQi (for XiangQi = Chinese Chess). A Makefile
is provided to compile and install them. Normally this would require only
the command (given from the main directory of the package):
sudo make install
This will install the executables in /usr/games, (where XBoard expects
them), and their data files in /usr/share/games/fairymax.
Should you want to compile by hand, you could use the following
commands:
gcc -O2 fairymax.c -o fairymax
gcc -O2 fairymax.c -DSHATRANJ -o shamax
gcc -O2 maxqi.c -o maxqi
In this case you will get versions that expect their fmax.ini or qmax.ini
files in the current direcory. To change the default path of the ini files,
you can include the argument
-DINI_FILE=\"pathname\"
to the gcc compilation command line.
H.G.Muller
fairymax-5.0b/changelog 0000664 0000000 0000000 00000036227 12661160032 0015221 0 ustar 00root root 0000000 0000000 /***************************************************************************/
/* micro-Max version 4.8 (~1950 characters) features: */
/* - recursive negamax search */
/* - all-capture quiescence search with MVV/LVA priority */
/* - (internal) iterative deepening */
/* - best-move-first 'sorting' */
/* - a hash table storing score and best move */
/* - futility pruning */
/* - king safety through magnetic frozen king */
/* - null-move pruning */
/* - Late-move reductions */
/* - full FIDE rules (expt minor promotion) and move-legality checking */
/* - keep hash + rep-draw detect */
/* - end-game Pawn-push bonus, new piece values, gradual promotion */
/***************************************************************************/
/* The Fairy-Max version reads the piece description from a file fmax.ini */
/* The format supports many fairy pieces, including hoppers. */
/* f) now supports 15 piece types, by requisitioning WHITE bit */
/* g) supports larger board width. */
/* h) castling bug ('in-check by non-captures') corrected */
/* i) rep-draw bug ('side-to-move') corrected */
/* k) allow user underpromotions, recognize & ignore 'variant' command */
/* l) edit bug corrected (i & j file clear) */
/* m) piece values no longer quantized, game-stage counting bug corrected */
/* n) edit-menu K-side castling bug corrected. */
/* o) retrieve the requested variant from the .ini file */
/* p) clear hash table on variant switch */
/* q) reduced piece-material count for better Pawn push */
/* r) hash-table bug corrected (X still ORed with flags) */
/* s) Bug that prevented initialization center points corrected */
/* t) castling bug after edit fixed */
/* u) converted to protocol 2; ping implemented */
/* v) white e.p. rights hash bug fixed; */
/* w) piece indicators programable, multi-path support */
/* x) e.p. changed to support Berolina Pawns */
/* y) capture value of 6-7th-rank Pawn reduced in Shatranj */
/* z) bug in promotion input corrected */
/* A) stalemate-detection bug in printResult fixed */
/* B) Invalidate hash on game-level promotion (might be under-promotion!) */
/* C) King move evaluation based on negative piece value in stead of nr */
/* D) WB memory command added, undo fixed */
/* E) 15th piece read in */
/* F) accepts ini fileargument */
/* G) bug in calculation ASCII promotion character fixed */
/* H) unified normal and shatranj source */
/* J) rewrite under-promotion code, fixes persistent bug there */
/* K) o[] and oo[] made int to make fairymax work on big-endian machines */
/* L) added Resign option feature (using new WB protocol) */
/* M) char -> signed char for better portability */
/* N) add PV printing and multi-PV support */
/* O) non-Rook castling, 6th-rank promotion, independent B/W piece naming */
/***************************************************************************/
4/6/2009 Unified source of ShaMax and Fairy-Max into single fmax.c file, and
created this ChangeLog from the until then self-documenting source.
6/2/2009 Promotion code rewitten to not refer to default piece characters.
9/3/2009 Fixed big-endian bug in reading inifile (char with int format),
and added some option features to make Fairy-Max useful as test
engine for GUIs that want to implement the WB protocol extensions.
9/16/2009 Made signedness of char in AI explicit
27/12/2009 Added PV updating through the triangular-array method. Also added
a multi-PV option to print lines within a certain sccore margin.
15/1/2010 Improved Makefile, updated docs
Implement independent naming of white and black pieces. (So mirror-
image pieces can use same letter.)
Change castling code to allow castling with any corner piece type.
Implement 6th-rank promotion based on 'Queen' value.
Makruk added as new variant to the fmax.ini file.
16/1/2010 Fixed bug in Shatranj result claims.
Flip eval sign when side-to-move changes through WB color command.
17/1/2010 Removed Shatranj stalemate claim again, as it was never triggered.
1/11/2010 Implement counting of pieces, and extinction win condition.
Add engine option to allow subdivision of variant fairy.
Add FIDE vs Nutty Knights as variant fairy/FIDE-Nutters
Allow white and black to promote to a different piece type.
2/11/2010 Implement duple-check rule.
Add Spartan Chess as variant to fmax.ini.
Update docs.
1/12/2010 Version 4.8Q, implementing a reverse setup command for sending
pieceToCharTable and initial position to the GUI, sub-specification
of variant fairy through an engine-defined option, allowing Seirawan-
type gating moves in search. Seirawan Chess is added as new variant,
plus several new combinations of Chess with different armies
7/10/2011 Version 4.8R, keeping better track of which pieces are virgin in a
setup position, and have a better distinction between use of the '4'
move-rights code between an initial double-step jump without e.p.
rights (as could so far only be used for Pawns, as the Spartan
Hoplite), and castlings. As a result even royal pieces can now get
an initial double-step other than castling, which has been used to
implement Cambodian Chess as a sub-variant of Makruk (selected
through a new option). Falcon Chess was added as a new variant.
12/2/2013 Version 4.8S. Fixes a lot of bugs:
* Setting up Seirawan positions with ungated pieces
* Making Seirawan gating with already gated pieces illegal
* Fix undo in Seirawan (by remembering gatings)
* Recognizing drop moves as illegal moves
* Hash-table was only half used
* Spurious result claims after under-promotion
* False mate claims in Spartan when promotion to K was possible
* Fix bug in Berolina e.p. capture that is actually non-capture
* Fix conditions for check extension on capture of checker
* Fix Clear Hash option, which did not work at all
* Fix addition of 6th & 7th-rank Pawn bonus when setting up position
* Adapt score by true piece value in case of (under-)promotion
In addition it prints msec-accurate timing info,
and can implement limited range sliders of range up to 5.
Some game definitions using the Remarkable Rookies army (which
uses a range-4 Rook) have been added as sub-variants of fairy.
8/9/2014 Version 4.8T. Three bug fixes, some enhancements, two new variants:
* mark Rook non-virgin after castling, so it cannot gate in Seirawan
* Fix printing of variants feature in MaxQi
* Sending the setup command now also works with 3rd-rank Pawns
* Allow sending a parent variant with 'setup'
* Implement new method for indicating promo-zone width = 3
* Implement new variant nocastle
* Implement new variant ASEAN Chess
* Add option to play Makruk with Ai-Wok in stead of Met
17/10/2014 Version 4.8U. Four new variants were added:
* Charge of the Light Brigade
* King of the Hill
* Bifurcator Chess
* Team-Mate Chess
General game-playing enhancements:
* Hoppers can now be specified as hopping over friendly pieces
only, and the point where the second move leg starts can be
moved to the step just before hitting the platform.
* Sliders will now toggle to their secondary move only once,
allowing bent riders at the expense of crooked ones.
* Code is added to recognize the situation 'bare King', and
give higher award for cornering it in that case, to make mating
with many weak pieces (as regularly occurs in Makruk) easier.
* When a mate of the bare King in one corner cannot be found,
points will be awarded to drive the King out of that corner to
another one, allowing it to successfully perform KBNK-like mates.
* Make it possible to mark pieces as invalid promotion choice
Embracement of new standards:
* Add logo, and install it according to new 'plugin standard'
* Install a (new) .eng file to comply with the plugin standard
* Issue the (new) XBoard 'piece' command for all non-standard pieces
New options:
* Fifty-move claiming can be adapted to the need of the variant
* A comment line can now be displayed with each variant through
an 'Info' button in the engine options
Bugfixes, two of fatal bugs:
* Fix printing of Seirawan gating moves
* Correct the moves of the Marshal in the Rookies army of CWDA
* suppress emission of a spurious (garbled) setup command at startup
* Fix positioning of Pawns in ASEAN Chess in setup command
22/10/2014 Version 4.8V. Bugfix release for 4.8U:
* Fixes null move, which was broken by the bare King patch, as that
always set material (R) to 4, not just when bare King was detected.
26/1/2016 Version 5.0a
A rather drastic enhancement of the general capabilities:
* Analyze mode is supported, meaning arrival of input is tested
during search. Both Linux and Windows code was added for this
* Move exclusion during analysis is supported (feature exclude=1)
* The number of board ranks is no longer fixed at 8, but can have
any value up to 16. This required the promotion 'upgrade' to come
from a table pt[], rather than being derived from rank number
through a hard-coded expression
* The promotion code now uses the true value of promotion pieces in
the search, rather than assuming Q and correcting it at game level
* Pawns can start on other ranks than the 2nd, and would normally
start at the edge of the promotion zone as indicated by the =N
suffix to the board size in the ini file
* A negative N in the =N suffix now does affect on which rank the
Pawns are placed, but leaved the promotion zone depth at 1 rank
* A spin-off of the table-driven promotion is that the promotion
piece can be made file-dependent. This is currently used to set
the choice to the piece that starts on that square, as a side
effect of starting the Pawns on 4th rank
* Initial triple pushes of Pawns can be e.p. captured on both
skipped squares on 10-rank boards, when they are specified as
first move on the white Pawn
* It is possible to define on Pawns a move that is both an
initial triple push as well as a double push when advanced only
one square. This uses the code that normally would be a 5-push
* Any pair of royals will now be subject to the procedure of
bare-King detection, and increase of its centralization weight,
rather than just piece 3 and 4. This makes it easier to order
the Kings last, for better LVA move sorting
* Stalemate can be configured as a win, currently triggered by
defining value -2 for the 9th piece (which then is a royal)
* The castling-through-check test now can test more than the
3 squares starting at the King from-square, and really tests
upto the square next to the King destination. This would work
for castlings of any King stride >= 2
* The castling emptiness test now works for strides up to 4,
on boards of any width (was 3, and flaky for K-side 10-wide)
* Repetition detection now also is done inside the tree,
making it possible to plan for sacrificial perpetuals
* Bare-King checkmating is improved, by clearing the hash
table after every move (except mate scores and game history).
* The case with color-bound pieces is now handled by changing
the centralization table as soon as the bare King visits
a corner square into one that penalizes only the adjacent
two corners
* Against bare King all reductions are switched off, and a new
2-ply extension is granted on a bare King leaving a corner.
This speeds up finding corner mates.
* A variant-specific file is used to pre-charge the hash table
with positions that are protected from overwrite. A file for
Makruk to help recognizing some difficult mates is included
in the install
* New engine-defined options 'Save in hash file' (button) and
'Automatic persistent-hash dialog' (checkbox) can be used to
add positions to this persistent hash file.
* moves with bent trajectories can now be defined in the ini
file by adding the desired secondary step as third parameter
* clear hash on null-move switch, rather than spoiling the key
These enhancements have made it possible to add many new
variants, all out of reach before:
* Los-Alamos Chess (6x6 without Bishops)
* Janus Chess (10x8 with two Archbishops, stride-4 castling)
* Roman Chess (10x10, with two Commoners)
* Mexican Chess (10x10 with 2 Camels and Pawn triple-push)
* Ciccolini's Chess (10x10 with Adjutants (BDD) and Zebras)
* Grande Acedrex (12x12, game from 1283AD with bent sliders)
* almost-Wildebeest (11x10, with Gnu and 2 Camels)
17/2/2016 Version 5.0b
Mostly bug-fixes, and some small interface improvements:
* Input of Makruk promotion moves (broken by 5.0a) fixed
* Fix false game repetitions from undo messing up game history
* Fix dropping out of analysis mode in checkmate position
* Improve game-phase definition to prevent King chasing
* Grand Acedrex piece values set to encourage Zebra promotion
* Randomization obeys 'random' command, suppressed in analysis
* Print mate scores according to new CECP standard
* pieceToChar strings adapted to new XBoard piece order
fairymax-5.0b/copyright 0000664 0000000 0000000 00000001476 12661160032 0015300 0 ustar 00root root 0000000 0000000 This package was debianized by H.G.Muller on
Fri Jun 5 20:42:56 CEST 2009.
Upstream Author(s):
H.G. Muller
Copyright:
Copyright (C) 2009 H.G. Muller
License:
Fairy-Max 4.8 is free software, and you have permission do
with it whatever you want, whether it is commercial or not.
Note, however, that Fairy-Max can easily be configured through
its fmax.ini file to play Chess variants that are legally pro-
tected by patents, and to do so would also require permission
of the holders of such patents. No guarantees are given that
Fairy-Max does anything in particular, or that it would not
wreck the hardware it runs on, and running it is entirely for
your own risk.
The Debian packaging is (C) H.G.Muller.
fairymax-5.0b/data/ 0000775 0000000 0000000 00000000000 12661160032 0014246 5 ustar 00root root 0000000 0000000 fairymax-5.0b/data/fairymax.eng 0000664 0000000 0000000 00000000115 12661160032 0016556 0 ustar 00root root 0000000 0000000 plugin spec 0.0
fairymax
chess,capablanca,seirawan,fairychess,shatranj,asean
fairymax-5.0b/data/fmax.ini 0000664 0000000 0000000 00000123216 12661160032 0015707 0 ustar 00root root 0000000 0000000 version 4.8(w)
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:74 -16,24 -16,6 -15,5 -17,5
p:74 16,24 16,6 15,5 17,5
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
Some Common piece definitions:
The board steps are encoded as follows:
^ toward 8th rank
|
-52 -51 -50 -49 -48 -47 -46 -45 -44
-36 -35 -34 -33 -32 -31 -30 -29 -28
-20 -19 -18 -17 -16 -15 -14 -13 -12
<-- -4 -3 -2 -1 start 1 2 3 4 --> towards h file
to 12 13 14 15 16 17 18 19 20
a-file 28 29 30 31 32 33 34 35 36
44 45 46 47 48 49 50 51 52
|
v towards first rank
SIMPLE LEAPERS
Ferz:
f:150 15,7 17,7 -15,7 -17,7
Wazir:
w:125 1,7 16,7 -1,7 -16,7
Knight:
n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
Dabbabah:
d:100 2,7 32,7 -2,7 -32,7
Elephant:
e:80 30,7 34,7 -30,7 -34,7
Camel:
C:225 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7
Zebra:
Z:175 29,7 46,7 50,7 35,7 -29,7 -46,7 -50,7 -35,7
Unicorn:
u:-1 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
COMPOUND LEAPERS
King:
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 1,34 -1,34
King (Shatranj, no castling):
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 1,34 -1,34
King (Capablanca castling):
k:-1 2,3034 -2,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
Commoner:
m:260 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
Bison:
1000 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7 29,7 46,7 50,7 35,7 -29,7 -46,7 -50,7 -35,7
Wildebeest:
g:800 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7
Carpenter:
c:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 2,7 32,7 -2,7 -32,7
Kangaroo:
o:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 30,7 34,7 -30,7 -34,7
High Priestess:
h:625 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 30,7 34,7 -30,7 -34,7 15,7 17,7 -15,7 -17,7
Minister
c:625 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 2,7 32,7 -2,7 -32,7 1,7 16,7 -1,7 -16,7
Crab:
c:150 31,7 33,7 -14,7 -18,7
Barc:
b:150 14,7 18,7 -31,7 -33,7
SEPARATE CAPTURES / NON-CAPTURES
White Pawn:
p:100 -16,24 -16,6 -15,5 -17,5
White Pawn (Shatranj, no double move):
p:100 -16,6 -15,5 -17,5
White Berolina Pawn
p:74 -15,24 -17,24 -16,5 -15,6 -17,6
Black Pawn:
p:100 16,24 16,6 15,5 17,5
Black Pawn with initial triple- and double-push (Mexican Chess)
p:100 14,424 16,24 16,6 15,5 17,5
Black Pawn with initial triple- and double-push, and double-push on 3rd rank (Wildebeest Chess)
p:100 14,C24 16,24 16,6 15,5 17,5
Pegasus (moves as Queen, captures as Rook):
S:500 1,2 16,2 15,2 17,2 -1,2 -16,2 -15,2 -17,2 14,5 31,5 33,5 18,5 -14,5 -31,5 -33,5 -18,5
Keen (moves as King, captures as Queen):
k:750 1,6 16,6 15,6 17,6 -1,6 -16,6 -15,6 -17,6 1,1 16,1 15,1 17,1 -1,1 -16,1 -15,1 -17,1
Quing (moves as Queen, captures as King):
q:600 1,5 16,5 15,5 17,5 -1,5 -16,5 -15,5 -17,5 1,2 16,2 15,2 17,2 -1,2 -16,2 -15,2 -17,2
SLIDERS
Bishop:
b:350 15,3 17,3 -15,3 -17,3
Rook:
R:500 1,3 16,3 -1,3 -16,3
NightRider:
H:560 14,3 31,3 33,3 18,3 -14,3 -31,3 -33,3 -18,3
Queen:
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
LEAPER / SLIDER COMPOUNDS
Archbishop:
A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
Caliph:
C:875 15,3 17,3 -15,3 -17,3 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7
Marshall:
C:900 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
Canvasser:
C:900 1,3 16,3 -1,3 -16,3 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7
Amazon:
A:1150 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
HOPPERS
GrassHopper:
G:200 1,F8 16,F8 15,F8 17,F8 -1,F8 -16,F8 -15,F8 -17,F8
Cannon:
C:400 1,BA 16,BA -1,BA -16,BA
BIFURCATORS
Dimachaer:
D:300 16,14B8 16,1F4B8 -16,14B8 -16,1F4B8 1,104B8 1,FFFF04B8 -1,104B8 -1,FFFF04B8
Secutor:
S:300 16,14BA 16,1F4BA -16,14BA -16,1F4BA 1,104BA 1,FFFF04BA -1,104BA -1,FFFF04BA
Provocator:
V:830 17,14B8 15,1F4B8 -15,14B8 -17,1F4B8 17,104B8 -15,FFFF04B8 -17,104B8 15,FFFF04B8
Murmillo:
M:830 17,14BA 15,1F4BA -15,14BA -17,1F4BA 17,104BA -15,FFFF04BA -17,104BA 15,FFFF04BA
LAME LEAPERS
Horse:
N:5 16,1070 16,1F070 1,10070 1,FFFF0070 -16,1070 -16,1F070 -1,10070 -1,FFFF0070
Xiangqi Elephant:
E:1 15,70 17,70 -15,70 -17,70
LIMITED-RANGE SLIDERS
R3 (range-3 Rook):
D:375 1,443 16,443 -1,443 -16,443
R4 (range-3 Rook):
D:425 1,843 16,843 -1,843 -16,843
R5 (range-3 Rook):
D:450 1,C43 16,C43 -1,C43 -16,C43
B4 (range-4 Bishop):
A:300 15,843 17,843 -15,843 -17,843
BENT SLIDERS
Griffon:
G:830 17,1003 15,1F003 -15,1003 -17,1F003 17,10003 -15,FFFF0003 -17,10003 15,FFFF0003
Aanca:
A:780 16,1003 16,1F003 -16,1003 -16,1F003 1,10003 1,FFFF0003 -1,10003 -1,FFFF0003
Syntax of a variant description:
Each variant starts with the label "Game:" followed by the variant name.
After that follow upto 18 lines with the description.
Line 1: Board size (files x ranks), optionally folowed by zone depth.
Line 2: initial setup of white pieces on back rank
Line 3: initial setup of black pieces on back rank
Line 4-18: Description of piece types that can occur in the variant
This can be followed by some optional info to be sent to GUI when it
selects the variant, e.g. to tell it how some non-standard pieces move.
The board size can run upto 16-L x 16, where L is the largest lateral leap
of any piece. It can be suffixed with =N where the number N then indicates
the depth of the promotion zone (which normally is just the last rank).
Currently only n=3 is understood, and Pawns also start on 3rd rank then.
A negative N leaves the zone at 1 rank, but puts the Pawns on the (1-N)th
rank;
There can be upto 15 piece types per variant, numbered 1 to 15.
Numbers 1 and 2 are considered Pawns for white and black, respectively,
and the one rank of the opening setup will be filled with them.
These pieces will automatically promote to piece number 7 when they
reach the promotion zone. So in normal Chess, piece 7 should be programmed
as Queen. There is an exception to this: if the initial setup does have
a white piece 7, but not a black one, and black has a piece number 9, then
black will always promote to the latter. (This can be useful in variants
with different armies for black and white). Currently, when the Pawns are
configured to start on 4th rank, promotion will be to the piece that
started on the promotion square in the initial setup, except for the King
square, where it promotes to the piece on the a-side of it; future Fairy-
Max versions might get a way to enable this feature independent from Pawn
location. (But for now only Grande Acedrex needed this feature.)
Castling can be done only with the original corner piece as specified
by line 2 and 3. Any piece can in principle castle. (Subject to
the normal restrictions on castling, i.e. not passing through check etc.)
If you don't want that, remove the castling moves from the King description.
If the castling initiator does not start in a central file, the results are
currently undefined.
The variant name can be suffixed with some info to be sent to the GUI
as a 'setup' command, behind a # character. In particular the piece-
to-character table to define which symbols the GUI should use for
the various pieces, and (after another #) the 'parent' variant.
Most variant definitions can be seen at the end of this file.
Other lines in this file (i.e. those not recognized as belonging to a
variant description) are ignored. They can be used for comments.
Fairy-Max' 'Info' option makes the GUI display the text of the comment
line starting with '//' just before the start of the definition.
In case you want to build your own pieces, this is how it works:
The piece-description lines have the following syntax:
1) a piece-indicator character (lower case if piece should be centralized)
2) a colon
3) the internal value to be used for the piece (in centiPawn; Royal = -1)
4) for each direction it moves in, a ray descriptor consisting of:
a) the initial step vector (on a 16xN board, so 16 = straight ahead)
b) a comma
c) the move-mode descriptor, given in hexadecimal, as the
individual bits specify the various options
optionally followed by
d) a comma
e) a secondary step vector
The piece indicator character is used to set up positions, and for the
promotion choice as extra character at the end of an input move. (Fairy-
Max itself always promotes to "Queen", i.e. the 7th piece of the list.)
If more pieces use the same letter, the first one is used for white,
and the last one for black. If more than two have the same name, the
others cannot be indicated at all, but they could still occur in the
initial setup (where you specify them by number, not letter).
Pieces with negative values are considered royal. If one side has more than
one royal piece of the same type, he loses if the _last_ one is captured.
This means any 'spare' royal pieces can be sacrificed, and the exchange
value assumed for them will be the absolute value of what you defined.
With a value -1, however, loss of the first piece of that type loses the game.
For royal piece types larger than 7 there is the special rule that it is not
allowed to leave more than one of them under attack ('duple check').
A royal value of -2 is currently used as a kludge to enable an alternative
winning condition, namely when the royal piece reaches (and survives in)
one of the four central squares.
NOTE: Any piece with a value that (in decimal notation) ends in '3' will
not be accepted as promotion choice. (And neither will be absolute royalty,
i.e. piece value -1).
The individual bits in the move-mode descriptor have the following meaning:
In the last hexadecimal digit:
1 capture allowed (of enemy piece; own pieces always block a move)
2 non-capture allowed (i.e. we can move here if the square is empty)
4 leaper, i.e. move terminates after one step (as opposed to slider)
8 hop over non-empty square (normally occupied squares terminate a move)
Bits set in the forelast digits TOGGLE the corresponding bits in the last
digit. For hoppers when they hop over something, for the other pieces after
one to four steps (so for normal pieces, better not set those bits!).
The digit before that indicates some special things; a 1 indicates the
board should be treated as a cylinder, pieces crossing the right edge
re-entering the board at the left, and vice versa. The 2 bit indicates
the move is a multi-path move, only used for the Falcon in Falcon Chess.
The upper two bits (4 and 8) form a two-bit count, indicating how many
steps the first toggle of the move mode of a slider should be postponed
(4 = 1 step, 8 = 2 steps, C = 3 steps). This can be used to define
'limited range' sliders or lame leapers skipping over several squares.
For a hopper these bits have a different meaning: 8 indicates the
hop can only be taken over a friendly piece, and 4 that the toggle
to the second leg should be taken one step before the obstacle,
rather than on top of it (for implementing colliding bifurators).
The higher-order bits toggle corresponding bits in the step vector,
to allow bent paths. They should not be set explicitly; if a different
step for the second part of the trajectory is required, it can be
specified after a second comma, and Fairy-Max will calculate from this
how to set the high-order toggle bits. In absence of a secondary step
the latter will be assumed to be equal to the initial step.
Useful bit combinations for the last digit are:
3 normal slider
7 normal leaper
6 leaper that only moves (e.g. Pawn straight ahead)
5 leaper that only captures (e.g. Pawn diagonal)
1 slider that only captures
2 slider that only moves
0 pass through (for testing emptiness by Xiangqi Horse and Elephant)
4 reserved for skip-step of Pawn double move and castling
8 skip to hopper platform (1st part of Grasshopper move)
A non-capture before hop (1st part of Cannon move)
C must hop immediately
If the first step is a slider, a second step is made (if the square was
empty), but if the mode toggles to leaper, the move stops there (e.g. Horse).
Hoppers MUST change into non-hoppers on hopping, i.e. the 8 bit of BOTH
lower digits must be set. Otherwise results will be undefined.
Note that the first two piece-describing lines MUST be for the white and
black Pawn, respectively, or promotions will have undefined effects. Also
note that uMax does do primitive evaluation of Pawn structure, which might
become counter-productive if the Pawn move is changed.
A low digit equal to 4 gets special treatment, as the normal interpretation as
the last and only step of a move which can neither capture nor move is useles.
It will in stead be used as if it was 0 (i.e. there is a follow-up step),
but only if the piece has not moved before. If the 1 or 2 bit of the preceding
toggle digit are set, they then determine what the move can do after this second
step, in the normal way. (For pawn double-push and castling this would normally
be a non-capture.) The 4 and 8 bits of this toggle digit are not used for
toggling the leaper and hopper bits, though, but indicate if e.p. capture
on the reply should be suppressed, and if the move should be allowed to continue
even if the first step hits an occupied square. Currently only the following
values are defined (all working only for pieces that have not moved yet).
24 e.p.-capturable blockable double-step, non-capture only (on Pawns)
34 castling (on non-Pawns): will swing edge piece around you when possible
E4 e.p.-immune jump, non-capture only
F4 e.p.-immune jump
Other combinations are RESERVED, and will result in undefined effects.
(i.e.: they might do different things in future versions as they do in this one)!
For the truly lazy, a few complete game descriptions can be found below:
// FIDE Chess (a.k.a. Mad Queen variant)
Game: normal
8x8
8 5 6 9 3 6 5 8
8 5 6 9 4 6 5 8
p:74 -16,24 -16,6 -15,5 -17,5
p:74 16,24 16,6 15,5 17,5
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
S:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
// Chess without castling (intended as shuffle variant)
Game: nocastle
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:74 -16,24 -16,6 -15,5 -17,5
p:74 16,24 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
// Arabic precursor of modern Chess, with weak Queen and Bishops
Game: shatranj
8x8
6 4 5 3 7 5 4 6
6 4 5 3 7 5 4 6
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:110 30,7 34,7 -30,7 -34,7
R:630 1,3 16,3 -1,3 -16,3
q:180 15,7 17,7 -15,7 -17,7
e:110 30,7 34,7 -30,7 -34,7
f:180 15,7 17,7 -15,7 -17,7
// ASEAN Chess. New form of Makruk, with promotion of 8th rank only
Game: asean
8x8=-2
7 6 4 3 8 4 6 7
7 6 5 3 9 5 6 7
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
q:180 15,7 17,7 -15,7 -17,7
b:300 15,7 17,7 -15,7 -17,7 -16,7
b:300 15,7 17,7 -15,7 -17,7 16,7
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
R:630 1,3 16,3 -1,3 -16,3
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
// Thai Chess. Pawns promote on reaching 6th rank!
Game: makruk
8x8=3
13 12 8 3 7 8 12 13
13 12 9 7 4 9 12 13
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
f:181 15,7 17,7 -15,7 -17,7
q:181 15,7 17,7 -15,7 -17,7
m:181 15,7 17,7 -15,7 -17,7
s:300 15,7 17,7 -15,7 -17,7 -16,7
s:300 15,7 17,7 -15,7 -17,7 16,7
b:300 15,7 17,7 -15,7 -17,7 -16,7
b:300 15,7 17,7 -15,7 -17,7 16,7
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
R:630 1,3 16,3 -1,3 -16,3
// Cambodian Chess. Like Makruk, but with extra initial King and Met moves
Game: Cambodian
8x8=3
13 12 8 3 7 8 12 13
13 12 9 7 4 9 12 13
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 -16,10F4 -16,1F0F4 -1,100F4 1,FFFF00F4
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 16,10F4 16,1F0F4 1,100F4 -1,FFFF00F4
f:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4
q:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4
m:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4
s:300 15,7 17,7 -15,7 -17,7 -16,7
s:300 15,7 17,7 -15,7 -17,7 16,7
b:300 15,7 17,7 -15,7 -17,7 -16,7
b:300 15,7 17,7 -15,7 -17,7 16,7
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
R:630 1,3 16,3 -1,3 -16,3
#
# K& KiN
# M& FifD
// Thai Chess variant with Ai-Wok super-piece (RNF).
Game: Ai-wok
8x8=3
6 5 3 8 7 3 5 6
6 5 4 7 8 4 5 6
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
s:300 15,7 17,7 -15,7 -17,7 -16,7
s:300 15,7 17,7 -15,7 -17,7 16,7
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
R:630 1,3 16,3 -1,3 -16,3
A:1350 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,3 16,3 -1,3 -16,3 15,7 17,7 -15,7 -17,7
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
#
# A& NFR
// Cambodian Chess using WinBoard's new engine-defined variant mechanism
// Cambodian Chess. Like Makruk, but with extra initial King and Met moves
Game: cambodian # PN.R.M....SKpn.r.m....sk # makruk
8x8=3
13 12 8 3 7 8 12 13
13 12 9 7 4 9 12 13
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 -16,10F4 -16,1F0F4 -1,100F4 1,FFFF00F4
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 16,10F4 16,1F0F4 1,100F4 -1,FFFF00F4
f:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4
q:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4
m:181 15,7 17,7 -15,7 -17,7 16,F4 -16,F4
s:300 15,7 17,7 -15,7 -17,7 -16,7
s:300 15,7 17,7 -15,7 -17,7 16,7
b:300 15,7 17,7 -15,7 -17,7 -16,7
b:300 15,7 17,7 -15,7 -17,7 16,7
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
R:630 1,3 16,3 -1,3 -16,3
#
# K& KiN
# M& FifD
// Ai-Wok using WinBoard's new engine-defined variant mechanism
// Thai Chess variant with Ai-Wok super-piece (RNF).
Game: ai-wok # PN.R...A..SKpn.r...a..sk # makruk
8x8=3
6 5 3 8 7 3 5 6
6 5 4 7 8 4 5 6
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
s:300 15,7 17,7 -15,7 -17,7 -16,7
s:300 15,7 17,7 -15,7 -17,7 16,7
n:450 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
R:630 1,3 16,3 -1,3 -16,3
A:1350 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,3 16,3 -1,3 -16,3 15,7 17,7 -15,7 -17,7
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
#
# A& NFR
// Medieval intermediate between Shatranj and FIDE Chess
Game: courier
12x8
11 9 5 10 8 3 7 6 10 5 9 11
11 9 5 10 8 4 7 6 10 5 9 11
p:65 -16,6 -15,5 -17,5
p:65 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
e:70 30,7 34,7 -30,7 -34,7
w:100 1,7 16,7 -1,7 -16,7
f:120 15,7 17,7 -15,7 -17,7
m:280 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:300 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:366 15,3 17,3 -15,3 -17,3
R:550 1,3 16,3 -1,3 -16,3
// The King (Unicorn) moves as a Knight, and vice versa. The Unicorn can castle!
Game: knightmate
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:74 -16,24 -16,6 -15,5 -17,5
p:74 16,24 16,6 15,5 17,5
k:-1 1,34 -1,34 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
m:222 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
// Modern variant with B+N and R+N compounds (Archbishop and Chancellor) on 10x8 board
Game: capablanca
10x8
6 4 8 5 7 3 5 9 4 6
6 4 8 5 7 3 5 9 4 6
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
k:-1 1,3034 -1,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:475 1,3 16,3 -1,3 -16,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
A:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
C:875 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
e:1000 15,7 17,7 -15,7 -17,7 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 -1,7 1,7 -16,7 16,7 -1,34 1,34 -16,34 16,34
// Modern variant with B+N and R+N compounds (Archbishop and Chancellor) on 10x8 board
Game: gothic
10x8
6 4 5 7 9 3 8 5 4 6
6 4 5 7 9 3 8 5 4 6
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
k:-1 1,3034 -1,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:475 1,3 16,3 -1,3 -16,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
A:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
C:875 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
// Modern variant with two B+N compounds (Janus) on 10x8 board
Game: janus
10x8
5 6 3 4 8 7 4 3 6 5
5 6 3 4 8 7 4 3 6 5
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:475 1,3 16,3 -1,3 -16,3
A:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
k:-1 1,2034 -1,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
// The Falcon can take any of the 3 shortest paths to its destination
Game: falcon
10x8
6 4 5 8 7 3 8 5 4 6
6 4 5 8 7 3 8 5 4 6
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
k:-1 1,3034 -1,1034 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:475 1,3 16,3 -1,3 -16,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
f:450 13,FFFFF207 29,F207 46,F207 47,10207 49,10207 50,11207 35,11207 19,1207 -13,1207 -29,FFFF1207 -46,FFFF1207 -47,FFFF0207 -49,FFFF0207 -50,FFFEF207 -35,FFFEF207 -19,FFFFF207
A:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
C:875 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
#
# F& aflafrKafraflKafafsKafsafK
// Cylinder Chess: left and right board edges are connected
Game: cylinder
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:100 -16,24 -16,6 -15,105 -17,105
p:100 16,24 16,6 15,105 17,105
k:-1 1,34 -1,34 1,107 16,7 15,107 17,107 -1,107 -16,7 -15,107 -17,107
n:350 14,107 31,107 33,107 18,107 -14,107 -31,107 -33,107 -18,107
b:450 15,103 17,103 -15,103 -17,103
R:525 1,103 16,3 -1,103 -16,3
Q:1150 1,103 16,3 15,103 17,103 -1,103 -16,3 -15,103 -17,103
#
# P& fmWfceoFifmnD
# N& oN
# B& oB
# R& oR
# Q& oQ
# K& oK
// Berolina Chess. Pawns capture straight and move diagonally
Game: berolina
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:74 -15,24 -17,24 -16,5 -15,6 -17,6
p:74 15,24 17,24 16,5 15,6 17,6
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
#
# P& fmFfceWifmnA
// Modern variant with four new pieces in randomly chosen setup on 8x8 board
Game: super
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:350 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:360 15,3 17,3 -15,3 -17,3
R:575 1,3 16,3 -1,3 -16,3
Q:900 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
S:825 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
E:850 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
V:775 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
A:1200 1,3 16,3 -1,3 -16,3 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
o:700 2,7 30,7 32,7 34,7 -2,7 -30,7 -32,7 -34,7 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
g:640 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 2,7 30,7 32,7 34,7 -2,7 -30,7 -32,7 -34,7
m:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 16,70 -16,70
w:340 1,7 16,7 -1,7 -16,7 2,7 32,7 -2,7 -32,7
// Seirawan Chess; to 'gate in' Hawk (B+N) or Elephant (R+N), select it before moving
Game: seirawan
8x8
5 3 4 7 6 4 3 5
5 3 4 7 6 4 3 5
p:74 -16,24 -16,6 -15,5 -17,5
p:74 16,24 16,6 15,5 17,5
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
h:780 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
E:814 1,3 16,3 -1,3 -16,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
// The usual Persian army combats an entirely different gang of Spartans
Game: spartan
8x8
6 4 5 7 11 5 4 6
3 10 12 8 8 12 9 3
p:74 -16,64 -16,6 -15,5 -17,5
h:70 15,E4 17,E4 16,5 15,6 17,6
l:290 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7 1,6 -1,6
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
c:255 1,7 16,7 -1,7 -16,7 2,7 -2,7 32,7 -32,7
w:790 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
G:640 1,3 16,3 -1,3 -16,3 15,7 17,7 -15,7 -17,7
k:-435 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
k:-435 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
// Chess with Different Armies
Game: fairy/FIDE-Clobberers # PNBRQ.........Kp.....eac....lk
8x8
6 4 5 7 10 5 4 6
12 3 8 9 11 8 3 12
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
e:320 30,7 34,7 -30,7 -34,7 16,7 -16,7 1,7 -1,7
n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:500 16,3 -16,3 -1,3 1,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
c:480 15,7 17,7 -15,7 -17,7 32,7 -32,7 2,7 -2,7 30,7 34,7 -30,7 -34,7
A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,1034 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
l:530 15,3 17,3 -15,3 -17,3 32,7 -32,7 2,7 -2,7
#
# e WA
# c FAD
# l BD
# k KilO2rO3
// Chess with Different Armies
Game: fairy/Clobberers-FIDE # P.....EAC....LKpnbrq.........k
8x8
12 3 8 7 10 8 3 12
6 4 5 9 11 5 4 6
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
e:320 30,7 34,7 -30,7 -34,7 16,7 -16,7 1,7 -1,7
n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:500 16,3 -16,3 -1,3 1,3
A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
c:480 15,7 17,7 -15,7 -17,7 32,7 -32,7 2,7 -2,7 30,7 34,7 -30,7 -34,7
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
k:-1 1,34 -1,1034 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
l:530 15,3 17,3 -15,3 -17,3 32,7 -32,7 2,7 -2,7
#
# E WA
# C FAD
# L BD
# K KirO2lO3
// Chess with Different Armies
Game: fairy/FIDE-Nutters # PNBRQ................Kp...........h.t.c...uk
8x8
6 4 5 7 10 5 4 6
11 3 8 9 10 8 3 11
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
h:310 31,7 33,7 15,7 17,7 -31,7 -33,7 -15,7 -17,7
n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:500 16,3 -16,3 -1,3 1,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
u:400 31,7 33,7 14,7 18,7 1,7 -1,7 -16,7 -15,7 -17,7
C:935 16,3 1,3 -1,3 14,7 31,7 33,7 18,7 15,7 17,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
t:485 16,3 1,3 -1,3 -16,7 -15,7 -17,7
#
# h vNF
# t fsRbWbF
# c fsRbWfhNF
# u fhNbsWbF
# k KisO2
// Chess with Different Armies
Game: fairy/Nutters-FIDE # P...........H.T.C...UKpnbrq................k
8x8
11 3 6 7 10 6 3 11
8 4 5 9 10 5 4 8
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
h:310 31,7 33,7 15,7 17,7 -31,7 -33,7 -15,7 -17,7
n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
u:400 -31,7 -33,7 -14,7 -18,7 1,7 -1,7 16,7 15,7 17,7
C:935 -16,3 1,3 -1,3 -14,7 -31,7 -33,7 -18,7 -15,7 -17,7 16,7 15,7 17,7
R:500 16,3 -16,3 -1,3 1,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
t:485 -16,3 1,3 -1,3 16,7 15,7 17,7
#
# H vNF
# T fsRbWbF
# C fsRbWfhNF
# U fhNbsWbF
# K KisO2
// Chess with Different Armies
Game: fairy/Clobberers-Nutters # P.....EAC....L.......Kp...........h.t.c...uk
8x8
6 4 5 7 10 5 4 6
11 3 8 9 12 8 3 11
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
h:310 31,7 33,7 15,7 17,7 -31,7 -33,7 -15,7 -17,7
e:320 30,7 34,7 -30,7 -34,7 16,7 -16,7 1,7 -1,7
c:480 15,7 17,7 -15,7 -17,7 32,7 -32,7 2,7 -2,7 30,7 34,7 -30,7 -34,7
l:530 15,3 17,3 -15,3 -17,3 32,7 -32,7 2,7 -2,7
A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
u:400 31,7 33,7 14,7 18,7 1,7 -1,7 -16,7 -15,7 -17,7
C:935 16,3 1,3 -1,3 14,7 31,7 33,7 18,7 15,7 17,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,1034 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
t:485 16,3 1,3 -1,3 -16,7 -15,7 -17,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# h vNF
# t fsRbWbF
# c fsRbWfhNF
# u fhNbsWbF
# E WA
# C FAD
# L BD
# K KirO2lO3
# k KisO2
// Chess with Different Armies
Game: fairy/Nutters-Clobberers # P...........H.T.C...UKp.....eac....l.......k
8x8
11 3 6 7 10 6 3 11
5 4 8 9 12 8 4 5
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
h:310 31,7 33,7 15,7 17,7 -31,7 -33,7 -15,7 -17,7
e:320 30,7 34,7 -30,7 -34,7 16,7 -16,7 1,7 -1,7
l:530 15,3 17,3 -15,3 -17,3 32,7 -32,7 2,7 -2,7
u:400 -31,7 -33,7 -14,7 -18,7 1,7 -1,7 16,7 15,7 17,7
C:935 -16,3 1,3 -1,3 -14,7 -31,7 -33,7 -18,7 -15,7 -17,7 16,7 15,7 17,7
c:480 15,7 17,7 -15,7 -17,7 32,7 -32,7 2,7 -2,7 30,7 34,7 -30,7 -34,7
A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
t:485 -16,3 1,3 -1,3 16,7 15,7 17,7
k:-1 1,34 -1,1034 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# H vNF
# T fsRbWbF
# C fsRbWfhNF
# U fhNbsWbF
# e WA
# c FAD
# l BD
# K KisO2
# k KilO2rO3
// Chess with Different Armies
Game: fairy/FIDE-Rookies # PNBRQ................Kp.............w.mh.s.k
8x8
6 4 5 7 11 5 4 6
8 3 10 9 11 10 3 8
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
w:310 1,7 16,7 -1,7 -16,7 2,7 32,7 -2,7 -32,7
n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
R:500 16,3 -16,3 -1,3 1,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
s:400 16,843 1,843 -1,843 -16,843
M:935 16,3 1,3 -1,3 14,7 31,7 33,7 18,7 -16,3 -14,7 -31,7 -33,7 -18,7
h:480 15,7 17,7 -15,7 -17,7 2,7 32,7 -2,7 -32,7 3,7 48,7 -3,7 -48,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# w WD
# h HFD
# s W4
# m RN
# k KisO2
// Chess with Different Armies
Game: fairy/Rookies-FIDE # P.............W.MH.S.Kpnbrq................k
8x8
6 3 10 7 11 10 3 6
8 4 5 9 11 5 4 8
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
w:310 1,7 16,7 -1,7 -16,7 2,7 32,7 -2,7 -32,7
n:325 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:350 15,3 17,3 -15,3 -17,3
s:400 16,843 1,843 -1,843 -16,843
M:935 -16,3 1,3 -1,3 -14,7 -31,7 -33,7 -18,7 16,3 14,7 31,7 33,7 18,7
R:500 16,3 -16,3 -1,3 1,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
h:480 15,7 17,7 -15,7 -17,7 2,7 32,7 -2,7 -32,7 3,7 48,7 -3,7 -48,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# W WD
# H HFD
# S W4
# M RN
# K KisO2
// Chess with Different Armies
Game: fairy/Clobberers-Rookies # P.....EAC....L.......Kp.............w.mh.s.k
8x8
6 4 5 7 11 5 4 6
8 3 10 9 12 10 3 8
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
w:310 1,7 16,7 -1,7 -16,7 2,7 32,7 -2,7 -32,7
e:320 30,7 34,7 -30,7 -34,7 16,7 -16,7 1,7 -1,7
c:480 15,7 17,7 -15,7 -17,7 32,7 -32,7 2,7 -2,7 30,7 34,7 -30,7 -34,7
l:530 15,3 17,3 -15,3 -17,3 32,7 -32,7 2,7 -2,7
A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
s:400 16,843 1,843 -1,843 -16,843
M:935 16,3 1,3 -1,3 14,7 31,7 33,7 18,7 -16,3 -14,7 -31,7 -33,7 -18,7
h:480 15,7 17,7 -15,7 -17,7 2,7 32,7 -2,7 -32,7 3,7 48,7 -3,7 -48,7
k:-1 1,34 -1,1034 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# E WA
# C FAD
# L BD
# w WD
# h HFD
# s W4
# m RN
# K KirO2ilO3
# k KisO2
// Chess with Different Armies
Game: fairy/Rookies-Clobberers # P.............W.MH.S.Kp.....eac....l.......k
8x8
6 3 10 7 11 10 3 6
5 4 8 9 12 8 4 5
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
w:310 1,7 16,7 -1,7 -16,7 2,7 32,7 -2,7 -32,7
e:320 30,7 34,7 -30,7 -34,7 16,7 -16,7 1,7 -1,7
l:530 15,3 17,3 -15,3 -17,3 32,7 -32,7 2,7 -2,7
s:400 16,843 1,843 -1,843 -16,843
M:935 -16,3 1,3 -1,3 -14,7 -31,7 -33,7 -18,7 16,3 14,7 31,7 33,7 18,7
c:480 15,7 17,7 -15,7 -17,7 32,7 -32,7 2,7 -2,7 30,7 34,7 -30,7 -34,7
A:875 15,3 17,3 -15,3 -17,3 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
h:480 15,7 17,7 -15,7 -17,7 2,7 32,7 -2,7 -32,7 3,7 48,7 -3,7 -48,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,1034 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# W WD
# H HFD
# S W4
# M RN
# e WA
# c FAD
# l BD
# K KisO2
# k KilO2irO3
// Chess with Different Armies
Game: fairy/Nutters-Rookies # P...........H.T.C...UKp.............w.mh.s.k
8x8
6 4 5 7 11 5 4 6
8 3 10 9 11 10 3 8
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
w:310 1,7 16,7 -1,7 -16,7 2,7 32,7 -2,7 -32,7
h:310 31,7 33,7 15,7 17,7 -31,7 -33,7 -15,7 -17,7
u:400 -31,7 -33,7 -14,7 -18,7 1,7 -1,7 16,7 15,7 17,7
t:485 -16,3 1,3 -1,3 16,7 15,7 17,7
C:935 -16,3 1,3 -1,3 -14,7 -31,7 -33,7 -18,7 -15,7 -17,7 16,7 15,7 17,7
s:400 16,843 1,843 -1,843 -16,843
M:935 16,3 1,3 -1,3 14,7 31,7 33,7 18,7 -16,3 -14,7 -31,7 -33,7 -18,7
h:480 15,7 17,7 -15,7 -17,7 2,7 32,7 -2,7 -32,7 3,7 48,7 -3,7 -48,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# w WD
# h HFD
# s W4
# m RN
# H vNF
# T fsRbWbF
# C fsRbWfhNF
# U fhNbsWbF
# K& KisO2
// Chess with Different Armies
Game: fairy/Rookies-Nutters # P.............W.MH.S.Kp...........h.t.c...uk
8x8
4 3 5 7 11 5 3 4
10 6 8 9 11 8 6 10
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
w:310 1,7 16,7 -1,7 -16,7 2,7 32,7 -2,7 -32,7
s:400 16,843 1,843 -1,843 -16,843
h:480 15,7 17,7 -15,7 -17,7 2,7 32,7 -2,7 -32,7 3,7 48,7 -3,7 -48,7
h:310 31,7 33,7 15,7 17,7 -31,7 -33,7 -15,7 -17,7
M:935 -16,3 1,3 -1,3 -14,7 -31,7 -33,7 -18,7 16,3 14,7 31,7 33,7 18,7
u:400 31,7 33,7 14,7 18,7 1,7 -1,7 -16,7 -15,7 -17,7
C:935 16,3 1,3 -1,3 14,7 31,7 33,7 18,7 15,7 17,7 -16,7 -15,7 -17,7
t:485 16,3 1,3 -1,3 -16,7 -15,7 -17,7
k:-1 1,34 -1,34 1,7 -1,7 16,7 15,7 17,7 -16,7 -15,7 -17,7
#
# h vNF
# t fsRbWbF
# c fsRbWfhNF
# u fhNbsWbF
# W WD
# H HFD
# S W4
# M RN
# K& KisO2
// Great Shatranj: modern variant with range-two leapers replacing sliders, on 10x8 board.
Game: great
10x8
6 4 5 8 3 10 9 5 4 6
6 4 5 8 3 10 9 5 4 6
p:100 -16,6 -15,5 -17,5
p:100 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:290 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
e:270 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7
w:300 1,7 16,7 -1,7 -16,7 2,7 -2,7 32,7 -32,7
s:280 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
g:640 1,7 16,7 -1,7 -16,7 2,7 -2,7 32,7 -32,7 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7
h:640 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7
m:640 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,7 16,7 -1,7 -16,7 2,7 -2,7 32,7 -32,7
#
# P& fmWfcF
# E& FA
# W& WD
# G& KAD
# H& NAF
# M& NWD
// Charge of the Light Brigade (normal Chess rules)
Game: light-brigade # PNBRQKpnbrqk # nocastle
8x8
0 7 0 7 3 0 7 0
4 4 4 4 3 4 4 4
p:74 -16,24 -16,6 -15,5 -17,5
p:74 16,24 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:444 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:400 15,3 17,3 -15,3 -17,3
R:500 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
// King of the Hill (King MUST be #3 and have value -2 to trigger hill eval)
// Apart from mate, reaching one of the 4 central squares with K also wins
Game: king-of-the-hill # PNBRQKpnbrqk # fairy
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:66 -16,24 -16,6 -15,5 -17,5
p:66 16,24 16,6 15,5 17,5
k:-2 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
// Bifurcator Chess
// slider moves split into two directions at the first friendly piece they meet
Game: bifurcator # PNBRQKpnbrqk # fairy
8x8
6 4 5 7 3 5 4 6
6 4 5 7 3 5 4 6
p:66 -16,24 -16,6 -15,5 -17,5
p:66 16,24 16,6 15,5 17,5
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:259 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:370 15,3 17,3 -15,3 -17,3 15,1FCB8 17,1CB8 -15,1CB8 -17,1FCB8 15,FFFF0CB8 17,10CB8 -15,FFFF0CB8 -17,10CB8
R:518 1,3 16,3 -1,3 -16,3 1,10CB8 16,1FCB8 -1,10CB8 -16,1FCB8 1,FFFF0CB8 16,1CB8 -1,FFFF0CB8 -16,1CB8
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
#
# B& BtgabyabsB
# R& RtgabyabsR
// Variant where no single piece has mating potential
Game: team-mate # PN....EF...M.A.J...CUKpn....ef...m.a.j...cuk # fairy
8x8
10 8 6 12 3 5 9 7
10 8 6 12 4 5 9 7
p:110 -16,24 -16,6 -15,5 -17,5
p:110 16,24 16,6 15,5 17,5
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
m:275 30,7 34,7 -30,7 -34,7 45,7 51,7 -45,7 -51,7
e:360 15,7 17,7 -15,7 -17,7 30,7 34,7 -30,7 -34,7
c:600 14,FFFF1043 31,F043 33,31043 18,13043 -14,FFFF3043 -31,11043 -33,2F043 -18,11043
f:360 30,7 34,7 -30,7 -34,7 1,7 -1,7 16,7 -16,7
n:360 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
u:550 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 1,7 16,7 -1,7 -16,7
J:770 2,3 32,3 15,3 17,3 -2,3 -32,3 -15,3 -17,3
A:883 16,1003 16,1F003 -16,1003 -16,1F003 1,10003 1,FFFF0003 -1,10003 -1,FFFF0003
#
# E& FA
# F& WA
# M& AG
# U& WN
# C& NmpafsafF
# A& WyafsW
# K& KisO2
# J& BD0
// Variant on a 6x6 board without
Game: los-alamos # PN.RQKpn.rqk # fairy
6x6
6 4 7 3 4 6
6 4 7 3 4 6
p:99 -16,6 -15,5 -17,5
p:99 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:333 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:296 15,3 17,3 -15,3 -17,3
R:444 1,3 16,3 -1,3 -16,3
Q:851 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
// Variant from 1820 with Zebra ('Elephant') and Bishop - Dababbarider compound ('General')
Game: ciccolini # PN.RQ..........G.......EKpn.rq..........g.......ek # fairy
10x10
5 4 6 3 7 8 3 6 4 5
5 4 6 3 7 8 3 6 4 5
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
e:222 46,7 50,7 -46,7 -50,7 35,7 29,7 -35,7 -29,7
n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
R:475 1,3 16,3 -1,3 -16,3
G:700 15,3 17,3 -15,3 -17,3 32,3 -32,3 2,3 -2,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
k:-1 1,34,2 -1,34,-2 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
#
# E& Z
# G& BD0
// Mexican Chess: 10x10 variant with two 'Conquistadores' (move as Camel)
Game: mexican # PNBRQ...................CKpnbrq...................ck # fairy
10x10
6 4 3 5 7 8 5 3 4 6
6 4 3 5 7 8 5 3 4 6
p:100 -16,424 -16,24 -16,6 -15,5 -17,5
p:100 16,424 16,24 16,6 15,5 17,5
c:222 47,7 49,7 -47,7 -49,7 19,7 13,7 -13,7 -19,7
n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:332 15,3 17,3 -15,3 -17,3
R:475 1,3 16,3 -1,3 -16,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
k:-1 1,34,2 -1,34,-2 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
#
# P& fmWfceFifmW3
# C& C
// 12x12 variant from the Alfonso codex (1283 AD), with bent sliders and range-3 leapers
Game: grande-acedrex # P.CR.............A..U..G........LKp.cr.............a..u..g........lk # shatranj
12x12=-3
8 7 9 5 6 10 3 6 5 9 7 8
8 7 9 5 6 10 4 6 5 9 7 8
p:95 -16,6 -15,5 -17,5
p:95 16,6 15,5 17,5
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 1,E4 -1,E4 -16,E4 -15,E4 -17,E4
k:-1 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7 1,E4 -1,E4 16,E4 15,E4 17,E4
g:235 46,7 50,7 -46,7 -50,7 35,7 29,7 -35,7 -29,7
c:340 15,3 17,3 -15,3 -17,3
l:444 3,7 -3,7 48,7 -48,7 47,7 49,7 -47,7 -49,7 19,7 13,7 -19,7 -13,7
R:481 1,3 16,3 -1,3 -16,3
u:700 14,3,15 31,3,15 33,3,17 18,3,17 -14,3,-15 -31,3,-15 -33,3,-17 -18,3,-17
A:830 17,3,16 15,3,16 -15,3,-16 -17,3,-16 17,3,1 -15,3,1 -17,3,-1 15,3,-1
#
# K& KimAimD
# G& Z
# L& HC
# U& NmpafsyafW
# A& FyafsF
// Roman Chess: 10x10 variant with two 'Archers' (non-royal Kings)
Game: roman # PNBRQ.....AKpnbrq.....ak # fairy
10x10
6 4 3 5 7 8 5 3 4 6
6 4 3 5 7 8 5 3 4 6
p:100 -16,24 -16,6 -15,5 -17,5
p:100 16,24 16,6 15,5 17,5
a:290 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
n:310 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:332 15,3 17,3 -15,3 -17,3
R:475 1,3 16,3 -1,3 -16,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
k:-1 1,34,2 -1,34,-2 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
// Approximation to Wildebeest Chess, with Gnu and Camels. One-step castling is not possible.
Game: almost-wildebeest # PNBRQ...................C......GKpnbrq...................c......gk # fairy
11x10
6 4 5 5 7 9 8 3 3 4 6
6 4 3 3 8 10 7 5 5 4 6
p:100 -16,C24 -16,24 -16,6 -15,5 -17,5
p:100 16,C24 16,24 16,6 15,5 17,5
c:223 47,7 49,7 -47,7 -49,7 19,7 13,7 -13,7 -19,7
n:313 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7
b:333 15,3 17,3 -15,3 -17,3
R:473 1,3 16,3 -1,3 -16,3
Q:950 1,3 16,3 15,3 17,3 -1,3 -16,3 -15,3 -17,3
g:700 14,7 31,7 33,7 18,7 -14,7 -31,7 -33,7 -18,7 13,7 47,7 49,7 19,7 -13,7 -47,7 -49,7 -19,7
k:-2 1,34,3 -1,34,-3 1,34,2 -1,34,-2 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
k:-2 1,34,3 -1,34,-3 1,34,2 -1,34,-2 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
#
# P& fmWfceFifmW3iifmnD
# C& C
# G& NC
# K& KisO2isO3isO4
// End of game file
fairymax-5.0b/data/logo.png 0000664 0000000 0000000 00000022361 12661160032 0015720 0 ustar 00root root 0000000 0000000 PNG
IHDR d 2 %W pHYs od vpAg d 2 kǤ4 $,IDAThޕ{wVgνowE`e"Ŋb5XDb7łKQ#M,Q`(E)tX}gǹ5>\;gϝ3gf3/ K_D00EӞ_E!dApHNo|g.<
AH< x7O&pp'!a ,X C*ƗʓED"L @!V,&!h5&fkXab$#%ZI`L
Xw]aM̤]b7'a;CZ<`}w&-^wa``"W@"/@FX@" EL@@ E[( E aR@+b!E \b!"7H1XaEB aXb!!bi(h% VL(f!A0,fhZ/@8$FoH^ ,3*Q1 &6)", DH` FD1n4YAADHCHO5H̯
O-
}&b&P{j`ҍ_y @&$!6(z*f)h"bM!RԏB&XHHDDH&V$BIK[!"a!M4H
0DxRP1@g=&@@2c~'V0ʯ~: 7%zKf]s;n0pE>8d hEgtd$`&HX
J)Vw6n<=[RM}O