Check out Glinski's Hexagonal Chess, our featured variant for May, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments by HGMuller

EarliestEarlier Reverse Order LaterLatest
Chess variant engines and CECP (XBoard) protocol[Subject Thread] [Add Response]
H. G. Muller wrote on Thu, Apr 25, 2019 04:02 AM UTC:

Well, a work-around could be to define the FIDE and Clobberer Bede as different piece types, which just happen to have the same move. (And similar for Bishop.) As IDs would only occasionally clash, this means most of the time you would need 12 piece types for CwDA, instead of  10, which is probably well within the capability of ChessV. In Fairy-Max I often have to do that too, not because of the ID, but because it doesn't automatically flip the moves of black pieces. So pieces like Pawns always have to be defined as a white and a black variety. (And this posed the problem of allowing 'different' white and black pieces with the same ID.)


H. G. Muller wrote on Fri, Apr 26, 2019 06:57 PM UTC:

This is indeed the way XBoard does it; for protocol moves it forces the promotion suffix to lower case, for SAN to upper case. (Also in drop moves, btw.) In these contexts case sensitivity would not provide essential info, as it is known who is on move. I don't know any variant where one can promote to pieces of the opponent's color.

For FEN XBoard strictly adheres to the convention that upper case is white and lower case is black, even when asymmetry of the armies would not make this strictly necessary because the type already implies the color.

I don't see how this interferes with white and black using different ID for the same piece type, though. If they would take the ID from the same table they would certainly have to do a case conversion for one of the colors, or either in SAN or CECP moves. That they now take it from a twice larger table without first masking away the color info doesn't change that.


H. G. Muller wrote on Wed, May 1, 2019 06:52 AM UTC:

Great! My kitchen is finally installed, nearly a week behind schedule due to several setbacks. (It was supposed to be finished while I was on holiday in Cyprus.) But my home is still a shambles, so it might take another week before things are back to normal here.

About the use of 'dressed letter' IDs in SAN (not really a protocol matter!): perhaps it is best to treat the punctuation just as an alternative form of disambiguation in the SAN parser. So that 'B' in the SAN move would match B, B', B", B!, ... A 'tie breaker' rule could solve cases where both a bare B and a punctuated B would match the input move, in favor of the bare B.

This would allow the user (or GUI designer) to generate the kind of SAN he likes best: either always writing puctuation, or never writing it, and rely on the usual coordinate disambiguation to indicate which piece was moved.


H. G. Muller wrote on Wed, May 1, 2019 04:18 PM UTC:

Well, the U.S. is full of awesome places in itself. These national parks and forests are amazing. But indeed, trans-Atlantic travel is a pain.

And yes, the promotion suffix in this case would always need to be properly punctuated. This is one of the things I still have to fix in XBoard; as so far only the large Shogi variants taxed the alphabet so much that the punctuation had to be invoked, and promotion there is indicated by a '+'', I could so far ignore that problem. Except for the promotions to Buddhist Spirit / Teaching King because of 'contageon' in Maka Dai Dai Shogi. But I worked around that by using XBoards feature that allows defining a second 'nickname' ID for any piece (originally added to handle the frequently encountered non-compliant FENs for Xiangqi  that use N for H and B for E) to assign letters that otherwise were in very low demand as nickname to BS and TK, and have XBoard use the ninckname as promotion suffix when the real ID has punctuation.

Fairy-Max not supporting under-promotion, and only allowing promotion to the army's own superpiece, this problem so far did not occur in CwDA. I still have the feeling that this promotion to opponent piece types is an ugly solution to a non-existent problem, as the armies that supposedly would be disadvantaged by promotion to own pieces are already overly strong without that.


H. G. Muller wrote on Wed, May 1, 2019 09:37 PM UTC:

XBoard supports Maka Dai Dai with its 19x19 board and 50 piece types?  Holy crap!

Well, it depends on what is meant by 'support'. Problem is that 50 is just the number of unpromoted piece types, and that there also are a lot of promoted types (although many promote to Gold, and some not at all). The standard edition of XBoard comes with SVG images for 66 piece types, and falls just short of the mark. In the development version I have increased the number of piece types, but not the number of supplied SVG images. The additional piece types thus can only be used when external piece images are supplied by the user. (WinBoard already used that strategy for a long time, as it has fewer than 66 built-in bitmaps.) The idea was that only Shogi variants have such a large number of pieces, and that people that want to play those would want to use traditional kanji pieces rather than XBoard's default pictograms, and thus would have to supply external piece images anyway. And I added special support for kanji pieces, through a general -inscriptions option, which can define an arbitrary UTF-8 string, the characters (or pairs of characters) of which will be printed on top of the corresponding pieces (upside-down for black). So all that has to be supplied is 5 or 6 SVG images of blank Shogi tiles in various sizes, and with the aid of those XBoard can be configured for any Shogi variant.

fig 1 - XBoard using kanji-inscribed Shogi-tile images.

The piece IDs and the way the pieces promote would come from the -pieceToCharTable option, or the 'setup' command received from the engine, and likewise the initial position (and board size) from the -fen option, a PGN tag, or the 'setup' command. And the way the pieces move would come from the -men option, a PGN "VariantMen" tag or the 'piece' commands received from the engine.

I must admit I did not really try that for Maka Dai Dai Shogi; just for my own shrunken (13x13) version of it, Macadamia Shogi. Which can be done with the default pictogram pieces, already in XBoard 4.9.

 

For WinBoard there is the 'Alien Edition'; this really does have Maka Dai Dai Shogi as a standard variant, and contains built-in kanji and move tables for all variants up to Tai Shogi, and in two of the 18 board sizes generates mnemonic piece images from the move table. This doesn't support the dressed-letter IDs, though, so FENs do not work there.

fig 2 - part of the board of the WinBoard Alien Edition set for 'variant maka' (board size 'Petite').

fig 3 - The WinBoard Alien Edition configured for Macadamia Shogi (board size 'Mediocre').


Chess with Different Armies. Betza's classic variant where white and black play with different sets of pieces. (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, May 2, 2019 09:43 AM UTC:

Greg Strong:

Any guess when you think you'll have your new cwda engine ready for testing?

Hard to say; perhaps 2 weeks if I would give it priority. But the Tenjiku Shogi implementation in Jocly is still not finished, and already 2 months (of 4) have elapsed on its clock in the yearly Modern Tenjiku correspondence championship in which it is supposed to participate...

Main issue is that I want it to recognize drawishness through lack of mating potential, which would include strongly discounting the score in end-games like KBBPKBN, because of the almost undodgeable N-for-P sac leaving a KBBKB known general draw. This requires the knowledge of which Pawnless 5-men CwDA endings are general draws, which I must first aquire by generating EGT for those (with FairyGen). And there are rather many of those, especially if I want to keep open the possibility to test individual pieces out of their own context (i.e. dropping the requirement that the two pieces fighting on one side must belong to the same army, so that I can test, say, WD+R vs R to see if the (winning) advantage of a WD is preserved on adding equal pieces on each side). An additional complication is that the standard version of FairyGen counts on 8-fold symmetry, although I once made a compile that can handle 4-fold symmetric pieces. But even that would not be able to handle the Nutters pieces other than Fibnif.

Otherwise there are only minor issues; KingSlayer supported only 6 piece types (1-6, code 0 being reserved for empty squares), and I already added some initialization code to set their move tables to that of the various armies. I still want to allow use of code 7 as an extra piece type, which requires a small code change because originally I used the 7th entry in the array that counts the number of pieces that is present of each type to hold the 'game phase' (minors + 2*Rooks + Queens). So I must move that to a separate array. And I still have to fix a-side castling for the Clobberers.


Bent Riders. A discussion of pieces, like the Gryphon, that take a step then move as riders.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, May 2, 2019 05:45 PM UTC:

One can also make many other Rook/Bishop-based bent sliders than Griffon and Aanca. The latter two bend their trajectories by 45 degrees after one step, but one could also bend by 90, 135 or even 180 degrees, and after another number of steps. Last year someone presented me a variant he designed, which featured a piece that moved orthogobally for maximally 10 steps, turning at right angles after exactly 5 steps.


Checkmating Applet. Practice your checkmating skill with fairy pieces.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Fri, May 3, 2019 09:52 PM UTC:

I think I managed to fix the checkmating with the Wyvern, by having the EGT generator recognize the j modifier on sliding moves as ski-sliding, and generate the EGT accordingly. (So far this only works in the per-piece applet to which the Piececlopaedia links; I did not make similar modifications in the article, as it is currently not possible to specify ski-slides in the piece-design pane.)

The technique for checkmating with a pure Ski-Rook is also interesting!


Chess with Different Armies. Betza's classic variant where white and black play with different sets of pieces. (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, May 5, 2019 12:50 PM UTC:

A pair of WA is a general win. The rule of tumb is that one of the minors must be able to move from c1 to a1 (or their symmetry equivalents) in three moves (more precisely, for divergent or asymmetric pieces an uncapture, a move and a capture). A WA can do that (c1-c2-c3-a1), and can thus inflict a corner mate (moving c2-c3) with its King on b3 after the other minor has driven the bare King with check from b1 to a1. Furthermore, edge mates can be forced when one minor can 'fork' a1 and c1 at the the same time, and the other minor can move from c1 to b1 in three moves. But that doesn't work if the forking piece has to be on b3 (as a Knight would have to be), where it would collide with the King.

As to the level of ambition: perhaps I should start indeed a bit more simple. The general scheme is to discount a pawnless advantage by a factor 2 even if it still is a win (except for known easy wins such as KQK and KRK), to properly reflect the relative difficulty of the win. But known general draws should be discounted much more, e.g. by a factor 8 if there still is some hope, or even 16 or infinite if it is a truly dead draw. (A factor 16 would even shrink the KNNK advantage to much less than a Pawn, and when that would still make it the best option the alternatives will almost certainly offer no hope for a win either.)

That leaves room for discounting end-games with a single Pawn by 4 times smaller factor, when the opponent can afford to sac a piece for that Pawn to leave the pawnless general draw. Such a sac typically increases the advantage from +1 to +3, but the relative factor 4 makes the latter +0.75, so the leading side would be biased against allowing the sac. The remaining discount factor (2 or 4) would still discourage converting to such end-games, e.g. by trading Pawns in KBNPPKBNP.

This scheme would need a table that specifies which non-Pawn material should be considered a dead or a general draw. The simplest version of this would just list single minors vs nothing: KBK and KNK in FIDE. But having some 4-men endings in there (like non-mating pairs of minors, such as KNNK, or 'exchange'-type advantages like KRKN) would not be too demanding either. These entries would already extend their influence to KNNPKB and KRPKNN, through the sac-rule. The really tedious part would be to add 5-men end-games such as the 'minor ahead' situations KBNKN, KRBKR, KQBKQ,... But I already generated a lot of those tables; I will summarize those results in another comment.

It could also be good to discount cases like unlike Bishops with a difference of up to 2 Pawns by a factor 2, but at the moment I have no idea how to generalize that. (E.g. it seems that end-games with unlike Ferzes are not particularly drawish.)


H. G. Muller wrote on Mon, May 6, 2019 03:51 PM UTC:

End-games: light pieces

The table below gives an overview of some 5-men CwDA end-games, based on the statistics of generated End-Game Tables. I don't have a generator that can handle pieces with only 2-fold symmetry, but a special built of FairyGen can handle 4-fold symmetry, so I did include the Fibnif as only Nutters piece. CwDA armies consist of a super-piece worth 2.5-3 typical minors (such as Knights), and 3 pairs of 'light' pieces worth 1-1.5 minors. In FIDE the Rooks really stand out amongst the latter; in the other armies the pieces are closer in value, only 1 piece being of Knight strength, the other two lying somewhere in between Knight and Rook.

These pieces can be divided into majors and minors, depending on whether they are able to force checkmate onto a bare King. All light pieces of the Clobberers are minors, all of the light Rookies are majors. The Nutters have one minor, FIDE has two. Of all these minors, the Knight is the only one that cannot checkmate as a pair; for the Clobberers the heterogenous pair Bede + Fad cannot checkmate if they are on the same square shade. All other pairs of minors from the same army can force checkmate. Even all 'unnatural' pairs (which can in theory be obtained by promotion) can force checkmate, provided that pairs of color-bound pieces (Bede, Fad, Bishop) are on unlike shades.

The difference in strength between the light pieces is usually not enough to force a win in a 1-vs-1 situation. Somewhat exceptional are Rook vs WA (which would be a general win if it were not for the 50-move rule; as it is the win is cursed) and Rook vs Fibnif (where the result is unclear; a Fibnif is easily confined by a Rook, and in positions where it is separated from its King it can probably be chased to doom). Of course only the major pieces can hope for a win, in these situations.

Because of their closeness in value, I treated the light pieces as a single group, and generated all EGT of a natural pair versus a single one. Each army has 6 natural pairs, but for the Nutters I could only handle the pair of Fibnifs, so 19 pairs in total. I did not bother with a pair of Knights, as these cannot even win without opposition. I also did not bother with a pair of Rooks, as a pair of R4 could already beat any opponent. Each of the 17 remaining pairs was pitted against the 10 light piecs, 170 combinations in total. This gave the following result.

R = Rook
B = Bishop
N = kNight
D = BD      (beDe)
F = FAD     (Fad)
X = WA      (phoeniX)
S = R4      (Short rook)
H = HFD     (Half duck)
W = WD      (Woody rook)
N'= fhNbFbW (charging kNight)
R'= fsRbFbW (charging Rook)
I = FvN     (fIbnif)
K = non-royal King
Y = vRsN    (dragonflY)
O = BW      (dragon HOrse)

+  = general win
=  = general draw
~  = cursed general win
~? = half-cursed general win
+? = mostly won, but lots of fortress draws
?  = mixed win/draw
?~ = mixed, and about half the wins cursed
*  = already won without the second piece

       X   I   W   N   B   F   D   H   S   R   K   Y   O   N'  R'
XX     =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
BN     =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
FX     =   =   =   ~? ~/=  =   =   =   =   =   =   =   =   =   =
BB     +   =   =   ~?  =   =   =   =   =   =   =   ~   =   =   =
II     +   ~   =   +   =   =   =   =   =   =   =   =   =   =   =
DX     =   ~   =   +  +/= ~/=  =   =   =   =   =   =   =   =   =
YY     +   +   +   +   +   +   +?  +   =   =   +   =   =   +   =
WW     +   +   +   +   +   +   +   +   +   =   +   +   ?   +   ?
N'N'   +   +   +   +   +   +   +   +   +   ~?  +   +   ~?  +   +
N'I    +   +   +   +   +   +   +   ~   ~   =   +   +   =   +   =
RN     +   +   +   +   +   +   +   ~?  ~   =   +   +   ~   +   =
RB     +   +   +   +   +  +/+ +/+  ~   +   =   +   +   =   +   =
FF     +   +   +   +   +   +   +   +   +   =   ?   +   =   +   =
R'I    *   *   +   *   *   *   +   +   +   ~   +   +   +   +   ~? 
KY     +   +   +   +   +   +   +   +   +   =   +?  +?  ?   +   ?~
DF     +   +   +   +   +   +   +   +   +   +   +   +   =   +   ?
DD     +   +   +   +   +   +   +   +   +   +   +   +   =   +   +
KK     +   +   +   +   +   +   +   +   +   +   +   +   +   +   ?
HW     +   +   +   +   +   +   +   +   +   +   +   +   +   +   +
SW     +   +   +   +   +   +   +   +   +   +   +   +   +   +   +
HH     +   +   +   +   +   +   +   +   +   +   +   +   +   +   +
SH     +   +   +   +   +   +   +   +   +   +   +   +   +   +   +
SS     +   +   +   +   +   +   +   +   +   +   +   +   +   +   +
R'N'   *   *   +   *   *   *   +   +   +   +   +   +   +   +   +
R'R'   *   *   +   *   *   *   +   +   +   +   +   +   +   +   +
OY                                     +   +   +   +   +       +
OK                                     +               +       +

We see that the Bede and Fad, despite their lack of mating potential as an individual, form quite strong pairs. This is probably because they are able to drive an unprotected King to checkmate with checks, in a way reminiscent of the 'hand-over-hand' checking of a pair of Rooks. This makes it hard even for a Rook to harrass the pieces, threatening to trade and destroy the mating potential, which is the usual way in which pairs of minors fail to win. So in first approximation a pair wins if both members have mating potential (so that trading any of them will not rescue the defender), or if they are Bede/Fad pairs of unlike color, while other pairs of minors draw against any opposition.

The case major + minor only occurred in FIDE here, (R+B and R+N), as Clobberers have no majors, Rookies have no minors, and for Nutters I could not handle the majors. Because the major is relatively strong in FIDE, only a defending Rook can truly measure up to it; any other defender is so much weaker that adding even a 'standard minor' tips the balance. Against R4 or HFD, however, it takes too long to force the win, and the latter is cursed in almost all, or about half the cases. For Rook + Bishop vs Bede or Fad it doesn't matter if the defender is on like or unlike shade w.r.t. the Bishop.

Of the pairs of minors Bede + WA stands out: it in general beats a Knight, and a Bishop when it is on the same shade as the Bede. The win they in general have against a Fad on the Bede shade, or a Fibnif, is almost always cursed. They cannot beat a WA (which is probably the weakest defender in such end-games), but beating an equal piece is always more difficult, as you cannot attack it without offering it an opportunity to trade. The Bishop pair and a pair of Fibnifs (like a lone Rook) can beat the WA. The pair of Fibnifs is surprisingly strong: it can also beat a Knight. For the Bishop pair it takes so long to beat a Knight that the win is cursed more often than not. A win of two Fibnifs against one is very cursed (it takes on average 90 moves), but in view of the remark above it is amazing that it can force such a win at all. That the Fad is just a bit weaker than the Bede is also demonstrated by that the wins Bede + WA have against Bishop and Knight turn into cursed wins when the Bede is replaced by a Fad.

[Edit 14-5-2019] The Nutters and Dragons pieces were added to the table.


H. G. Muller wrote on Tue, May 7, 2019 08:10 PM UTC:

End-games part 2: Super-pieces

The super-pieces are in general so much stronger than the light pieces, that they will almost always beat the latter in a 1-to-1 situation. Only the strongest light piece (Rook) manages to hold a draw against an Archbishop, while its result against a Chancellor is a bit unclear. (The Chancellor can win if its King is already advanced so much that the Rook cannot cut it off at a safe distance from its own King, so that the Chancellor can attack it with its N move while checking with its R move, which is the case in a fair fraction of all possible positions.) The general win of Archbishop vs HFD is mostly cursed.

More interesting are the 5-men end-games where both players have a super-piece, (which in itself would be a general draw in all cases), to see whether an extra light piece can tip the balance. Unnatural pairs are not so unlikely here, as promotiong to the super-piece the opponent starts with should be reasonably common. To be complete I also generated EGT for the 'impossible pairs', where the light piece did not belong to the army of either super piece, because there were not that many, and some of those can occur in Seirawan Chess.

It is a bit tricky to interpret the statistics of super-piece end-games; their capacity for initial tactics that would alter the intended material balance is enormous. And even in genrally won positions there will be many draws due to perpetual checking. If I had a Xiangqi-style EGT generator it would detect perpetual checking and count it as a loss (so that I could judge its importance by comparing with the stats of normal generation), but alas... In theory it would also be possible to count draws through forced conversion to a non-lost end-game, e.g. by forking King + Chancellor by an Archbishop (possibly after some checks) and trade (or gain) it, by making that the 'winning' goal for the defending side in the table with all material present (as this would count as tactically non-quiet positions). But my generator doesn't do that either. How much such tactics is possible depends very much on the blind spots pieces have w.r.t. attacks of the opponent pieces, so it is hard to say what is 'normal' for a general draw or a general win, and even more difficult to recognize end-games that are part win, part draw.

I compiled the following table, which should be read as that the piece in the upper margin should team up with the first piece mentioned in the left margin, to beat the second piece mentioned there.

C = RN
A = BN

?  = probably only partially won

       WA FvN  WD  N   B  FAD  BD vRsN K   N' HFD  R4  R'  R
none   =   =   +   =   =   =   =   +?  +   +   +   +   +   +

Q-A    +   +   +   +   +   +   +               +   +       +
C-A    +   +   +   +   +   +   +               +   +       +
Q-C    =   ?   +   =   +   +   +               +   +       +
Q-Q    =   =   +   =   =   =   =   ~?  +   +   +   +   +   +
C-C    =   ~   +   =   =   +   +   ?   +   +   +   +   +   +
A-A    =   =   +   =   =   =   =   +   +   +   +   +   +   +
C-Q    =   =   +   =   =   =   ?               +   +       +
A-C    =   =   ~   =   =   =   =               +   +       +
A-Q    =   =   =   =   =   =   =               +   +       +

We can see that the super-pieces are not equally strong, but that mating potential of the extra piece in general is sufficient to preserve the win no matter which super-pieces are added, even if the extra piece teams up with the weaker one. The exception is the WD, which is rather minimal for a piece with mating potential. This is not able to overcome the Archbishop vs Queen disadvantage, while with Archbishop against Chancellor the win only seems partial, and then most of it is spoiled by the 50-move rule.

The minors show a more varied behavior. With equal super-pieces, or teaming up with the weaker one, they tend to preserve the draw. It is apparently too difficult to avoid trading of your super-piece against an equal or superior one. The exception occurs with Chancellors. These seem unusually good in cooperating with other pieces (which might have to do with their well-known unusual adeptness at perpetual checking): the pure advantage of Bede or Fad secures a win, and even together with Fibnif it makes a remarkable attempt (partial win, if it were not almost entirely cursed; worst case takes 154 moves!) Together with Bede (the strongest minor) it even gets a partial win against the (stronger) Queen. Together with a better super-piece the Bishop, Bede and Fad are good for a win, and the Knight, WA and Fibnif are if the weaker super-piece is the Archbishop.


H. G. Muller wrote on Wed, May 8, 2019 11:01 AM UTC:

End-games part 3: Super-pieces versus a pair

This is a very murky problem. I have generated the relevant 5-men EGT, but they seem very hard to interpret. Take for example Queen vs Bishop + Knight. This has 98.56% of all positions won when the Queen has the move (including 40.42% immediate King capture). The weak side is lost in 49.08% of the positions where it has the move, 28.44% of such positions are instant wins by King capture (so really illegal positions, that one could choose not to count). And 17.88% are wins by other means, which has to mean in this case gaining of the Queen and a subsequent mate with Bishop + Knight (obtained from generating the reverse EGT), or (rarely) a checkmate with the Queen still on the board. Almost all of these (98%) capture the Queen (or mate) on the first move, and none in more than 5 moves. These should not really be counted as Q vs B+N, they are tactically non-quiet positions in the process of converting to a simpler end-game. The remaining 4.61% of the positions with the weak side to move must be draws.

This looks as much as a general win as one could hope for. Nevertheless it is well known that B + N can make a 'fortress' that even resists the onslaught of an Amazon (Ka1, Bb2, Nd4). The resulting fortress draws are hidden in those 4.61% (which amounts to 8.5% after disrecarding the illegal and non-quiet positions). So in most cases the end-game in a quiet position (where chess engines evaluate) would be a win for the Queen, so it seems reasonable not to excessively discount it. (The factor 2 applied to all pawnless advantages would already do justice to the difficulty of winning this, as the 'raw' advantage is equivalent to a single minor, which after discounting translates to 1.5 Pawns, which is only marginally above the threshold for winning advantages.)

This makes it impossible to avoid the fortress, however. The problem with fortresses that are not recognized by the evaluation is that the engine continues to count itself rich for the almost indefinite duration the defender can maintain the fortress (until the 50-move rule puts an end to it, but that will be seen only after 100 ply, way beyond the horizon when you first enter the fortress). The alternative is to always discount end-games that contain a fortress draw heavily. That would be wrong in the majority of cases, but the won cases will eventually convert to another end-game (KQ-KB or KQ-KN), or checkmate outright. And once this gets within the horizon the score will be corrected. Basically this puts the 'burden of proof' for that an end-game with a fortress draw is a win on the winning side, even when it is the most likely case, because that case is easier to prove. E.g. 26.75% of all positions (=49% of the quiet ones) converts in 5 moves or less, and the search can presumably find that. This still leaves more cases where it is in error than just ignoring the fortress, though. In addition to such a 'passive' fortress there can also be draws due to perpetual checking. But these usually lead to repetitions quickly, so that the search has no difficulty recognizing those without any special discounting.

It is kind of hard to devise a satisfactory algorithm here without actually probing the EGT, or putting in dedicated code to recognize the fortress. The latter doesn't seem feasible for CwDA, where in most end-games we really have no idea at all whether there is a fortress or not, let alone how it looks. When embedding a single exotic piece in, say, a FIDE context, it does seem feasible to generate the Q vs 2 minors EGTs (6 of those, for all combinations of B, N and the exo-piece) in advance. Even an uncompressed 5-men EGT only takes 160MB, so with today's memory sizes a number of those can easily be kept in memory (possibly shared between several instances of the engine).

Fortunately in many cases of super-piece versus a pair of light pieces the discounting is not really important, because the 'raw' advantage is already pretty small to begin with. E.g. with Q vs 2R the difference is only 0.5 Pawn in favor of the Rooks, and for Q vs R+B it is only 1.25 in favor of the Queen. And the general factor 2 penalty for pawnlessness already would reduce that to 0.25 and 0.625, respectively. So it would always shy away of these end-games in favor of an advantage of a healthy Pawn, even when they are not listed as drawish. The drawishness discounting is only important for end-games that have a large raw advantage, possibly only super-piece vs pairs of the weakest minors B, N, WA, WD and Fibnif.

I will publish a table here when I have figured out how to best present the calculated statistics.

[Edit]

I made a useful addition to my EGT generator: when it is done generating the normal staticstic for a 2-vs-1 end-game, it declares all drawn positions in the successor 2-vs-0 and 1-vs-0 end-games a win, and then continues generating from there, effectively calculating whether King-baring can be forced (and in how many moves). This is a great help in investigating end-games like KQ.KBN, by generating the 'reverse' end-game KBN.KQ with King-baring victory. That makes it possible to recognize draws achieved by trading B or N for Q, which otherwise would show up as draws, indistinguishable from any fortress draws with all material, but now are reported as wins. This leads to the conclusion that almost all draws in KQ.KBN are due to shallow tactics that loses the Q against one or both minors: of the legal positions with the weak side to move only 0.14% are fortress draws. The known fortress is apparently very difficult to reach. This is in sharp contrast to Q vs two WD, which has 46.93% wins (38.12% converting within 3 moves), 28.5% forced losses of Q or K (the large majority in 1 move) , leaving 24.57% for fortress draws. Indeed the WD pair has a huge capacity for setting up fortresses: a mutually protecting pair can confine the enemy King on boards of any size, trapping it behind the file or rank they are on. You either gain one of the WD by checking/forking before they connect, or it will be a dead draw. Such end-games deserve heavy discounting, as the search (using check extension and capture search) will easily find the won or lost cases. Queen vs two WA has rather similar statistics, although I don't have a clue as to how the fortress looks there.

[Edit 2]

OK, I finally compiled a table, by combining info from the super-piece vs pair end-games themselves, the reverse end-games, and the reverse end-games under the baring rule. I extracted the info from the positions with the pair on move. This shouldn't really paint a different picture from when the super-piece was on move, except that in the latter case the large majority of positions (>80%) captures a hanging piece on the first move, altering the material balance from the intended one, so that the interesting results are much diluted there. Of course when such a capture does not happen, the other player gets to move, with the statistics presented here.

I only considered end-games where the advantage based on piece values would be large enough to reasonably suspect it could be a win even in the absence of Pawns.

The table list 6 numbers, all percentages:
1) win by shallow tactics (conversion in first 3 moves)
2) win by deep tactics (conversion in move 4-6)
3) lengthy wins
4) fortress draws
5) forced loss of super-piece (or checkmate)
6) immediate loss through King capture

           Q                  C                   A                   Colonel
NN  26-4-13-11-21-25  21-10-25-.1-19-25     9- 5- 2-40-19-25     16-9-14-15-20-25
BN  21-7-21-.1-23-28  18-10-21- 1-22-28     6- 2-15(~8)-27-22-28 10-7- 8-23-23-28
BB  15-7-18- 1-24-35  14- 5-20(~6)-.1-26-35 3-.2- 0-38-24-35      7-3- 4-25-26-35
XX  31-4- 5-15-19-26  26- 9-14- 5-20-26    10- 8- 3-32-20-26     16-9- 9-20-21-26
FX  21-5- 5-19-21-29  18- 6- 4-20-22-29     7- 4- 2-36-22-29
FF  22-7- 1-14-23-34  29- 5- 1-15-26-34     6- 2- 1- 2-54-34
WW  27-5- 2-18-20-28  23-11- 3-14-21-28    12- 9- 2-28-21-28     15-9- 4-11-32-28
II  30-5- 4-16-20-26  23- 9- 5-17-20-26     9- 8- 5-32-20-26     16-7- 3-28-21-26
YY  18-4- 1-13-27-37  11- 8- 3-15-26-37     6- 3- 1-19-34-37      8-5- 1- 7-42-37
KK                    15- 4- 2-30-20-28                           6-5- 2-13-45-28

The relevant statistics for classifying the end-game are highlighted in bold. (Note '.1' means 0.1!) These are the lengthy (i.e. non-tactical) wins versus the fortress draws. The other cases resolve fast enough to simpler end-games for the engine to base the score on static evaluations outside this end-game. A smart evaluation strategy for these end-games could be to initially classify them as a (pawnless) win, but for those that are mainly fortress draws increase the discount factor to a drawish value when the 50-move counter goes up, reflecting the observation that when you cannot make a winning exit from the end-game in the first 3 moves, your chances for a win will be pretty bleak. When looking ahead from end-games with a single Pawn in jeopardy (e.g. Q+P vs F+2X) they should be treated as drawish, as after sacrifycing X or F for P the remaining F and/or X will typically be tactically safe (or they would have been picked off before).

The Archbishop vs two Fads sticks out because in 54% of the cases the Fads can force capture of the Archbishop. (More typically the chances to force super-piece capture are only 20-25%.) One should not conclude from this that the game is mostly won for the Fads, though. The Archbishop is only rarely captured without compensation, and even trading it for a single Fad leaves no mating potential, and thus causes an instant draw. Only 7.46% are genuine losses (Archbishop lost without compensation, or an immediate checkmate). The Fads do dominate the game, however. Where in the other end-games gaining the super-piece in almost all cases happens on the first or second move, here that happens in only 10% of the cases, and takes on average 25 moves otherwise (worst case even 57 moves). The Fads will just methodically tighten the mating net around the enemy King, keeping their own King safe from perpetual check, and at some point the mate can only be averted by sacrificing the Archbishop.

In two cases (A vs B+N, C vs B-pair) a large fraction of the lengthy wins was cursed, and the table mentions the number of cursed wins in parentheses. We see the Archbishop doesn't perform very well; the only case where it has a good number of wins is against B+N (which is the weakest defending combination). A Queen beats the FIDE minors; even the pair of Knights, which still puts up a fight, manages to reach a fortress in less than half the cases, after disregarding all initial tactics. It doesn't manage to beat any pair from the other armies, though. The Chancellor does better: it also beats two WA, and thoroughly crushes the pair of Knights, but has some difficulty with the B-pair because the wins take too long.

[Edit 15-4-2019]

The Colonel is also weak, and only has some success against a pair of Knights. But because it is quite poor in delivering perpetual check, it actually runs a large risk of losing against pairs of majors, where sacrifycing it for one leaves a lost 3-men ending. Even against the weak ones, where the piece values suggest it has an advantage (Woody Rook, Commoner and Dragonfly). The large part of the forced conversions against these pairs are indeed mostly losing conversions, and especially for the Commoners most of these are lengthy.


H. G. Muller wrote on Tue, May 14, 2019 06:38 PM UTC:

End-games: more armies

The Nutters

I adapted FairyGen to handle also two-fold symmetry (at the expense of the EGT being twice as large, and generation twice slower). This was a bit tricky, as this required distinction between retrograde and prograde moves, and flipping the orientation of the black pieces (neither of which was needed with 4-fold symmetry). But for 3-men EGT it finally gave identical results to the mating app here (which doesn't assume any symmetry). This means I could now do end-games with the Nutters majors as well. To keep everything together as an easy reference, I added the results to the tables in the previous comments.

The 4-men endings of light pieces were already interesting: it turns out the Charging Rook is very adept at beating other light pieces, much more so than an ordinary Rook. It has a general win against B, N, FAD, WA, and Fibnif single-handedly, while wins against BD and WD can in general be forced, but are then almost always cursed. I guess this success can be explained by that checkmating with Rook requires zugzwang, and will not work as long as the opponent has another piece to dump a tempo on. So you have to gain the other piece first, and in most cases this isn't any easier than checkmating (unless the additional piece is much weaker than a King, such as Ferz or Wazir), with the additional handicap that the piece can be protected by its King. Checkmating a bare King with the Charging Rook doesn't require zugzwang, however. So the mere possession of an un-involved defensive piece at a safe distance is no help. The piece must actively engage the Charging Rook, and the weaker pieces will perish in this combat. I did not calculate any 5-men EGT with Charging Rook + other vs defender where the Charging Rook would already beat the defender on its own; these should obviously be won as well.

A Charging Knight as defender behaves like a typical light piece: it loses against pairs of majors and (unlike) Bede/Fad pairs, and draws pairs of minors. Also for the Nutters, pairs of majors typically beat any single light piece. Apart from the WD the Charging Knight is the weakest major, though, and a pair of it has similar difficulties to beat a Rook, or its replacements Charging Rook and Dragon Horse. It does slightly better than the WD in this (as might be expected from the fact that it has one more move target), and has a cursed win against the Rook rather than a plain draw, etc.

The Nutters add new pairs of major + minor. These are interesting, because their ability to win depends on the possibility of the defender to choose which of the two pieces he will trade away. Charging Knight + Fibnif have similar difficulties here as Rook + Knight, against the Rook(-replacements) except Bede (which due to its color binding is apparently easy to dodge); the comparative weakness of Charging Knight compared to Rook is apparently compensated by the relative strength of the Fibnif that was already noticed before. Charging Rook + Fibnif does even better than Rook + FIDE minor, and beat almost anything, although its general wins against Rook or Charging Rook are partly cursed.

End-games with the Colonel are difficult to classify. Because of the extreme forwardness of this super-piece, the outcome will depend very much on where it is placed on the board. End-games where both players have a Colonel thus always contain a fair number of wins and losses, even if one would expect them to be draws. This even holds for the 4-men case Colonel vs Colonel: 15% of those are lost even when you have the move! (For comparison, for Queen vs Queen this is only 0.27%.) A Colonel beats most light pieces; it has mixed results against R, R4 and the charging Rook, while the Commoner (and thus the Dragon Horse) can hold a draw against it.

The Dragons

I also added the pieces from the Daring Dragons army: Commoner, vRsN (Dragonfly) and BW (Dragon Horse). This didn't really require any modification of the existing code for 4-fold symmetry, but to make a more accurate judgement on end-games containing more than one Dragonfly I put in some code to split the statistics in a 'like' and 'unlike' cases of the Dragonfly's special form of color-binding, and only report the result for the unlike pair here (as that is what you start with, and it is not a likely promotion choice).

The BW is quite strong, which should not be surprising, as its middle-game piece value is also slightly above that of a Rook. As a defender it can stand up to the Bede/Fad pairs in addition to pairs of other minors, probably because the Bede cannot easily sneak up on it from a diagonal, as it can against a Rook. (Note two FAD, which lack the distant diagonal attacks, can also not beat a Rook.) The BW is upward compatible with the Commoner, so in cases where a pair containing a Commoner already wins, replacing that Commoner with a BW should win even easier, and no EGT for these end-games were generated.

The Commoner (once under protection of its King) can keep a draw against a Queen and an Archbishop, because it cannot be approached by the enemy King. The Chancellor beats it, however. FairyGen cannot handle the ski-slide of the Wyvern yet.


FairyGen. Generator for end-game tables with fairy pieces.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Wed, May 15, 2019 06:23 PM UTC:

Do you mean you use the rule that stalemate is a win? Otherwise DW-D would not be won, contrary to what you claim for "Duke + any piece". DR-K has no checkmates at all, and would be a reglementary draw. (And even when stalemate is a win it would be a general draw.) KQ-KR is only barely won, and when you weaken the Q side to DQ-KR, it becomes a general draw. KR-DR is a general win, though.

FairyGen cannot do hoppers (like the Cannon). The other pieces you mention are all standard, and already pre-configured in FairyGen's piecedef.ini file. (There is no need to assign other letters to royal types; the first piece mentioned of any color is always assumed royal. So KKK.KR would mean King + 2 commoners against King + Rook, and NQ.N would be a Knightmate end-game.)

To be frank, after having done nothing but generating hundreds of EGT and interpreting the results for more than a week, I was longing to do something else for a change. Like finishing the conversion of KingSlayer to a CwDA engine. But that doesn't have to stop you from doing it yourself. FairyGen can be downloaded from http://hgm.nubati.net/fairygen.zip , and it should be easy to run it from a command-prompt window.


💡📝H. G. Muller wrote on Thu, May 16, 2019 08:49 AM UTC:

FairyGen is just a set of Windows .exe files, one for each number of men (e.g. 4men.exe), it doesn't need anything else.  The FairyGen package contains a README.txt file with info on how to use it, but basically one just opens a command-prompt window, goes to the folder where the package was unzipped, and types a command like "4men -s KR.WR" (to generate royal King + Rook vs royal Wazir + Rook). The "-s" option specifies that stalemat should be considered a win. It then already prints some statistics info during generation, which you can ignore, and finally gets into a loop where you interactively can specify individual positions in this end-game that you want to probe, which you can immediately quit by hitting Ctrl-C. You can then find the stats of the end-game on a file "rep2.txt", in the following format:


WR_W stalewin

WON.wtm      62496
K capture    16352
other        46144
  0.          1671
 10.           404
 11.           968
 12.          3082
 13.          6133
 14.         12997
 15.         16010
 16.         14704
 17.          3136
WON.btm      57434
stalemate        0
W check       3391
LEGAL        59105
TOTAL        62496

WON.wtm gives the number of positions that white can win when he has the move, WON.btm the white wins with black to move. These are split up by distance to conversion (mate or capture) on the lines above, starting at 10 (so 11 means mated in 1 etc.) The total includes also 'illegal' positions where a King can be captured; their number with white to move is listed after 'K capture', and also gives an impression of how many of the listed wtm wins are due to immediate capture of possible other black pieces (although these sometimes will be protected).

If two or more of the pieces are color bound, the statistics will automatically be split into the like and unlike case, and presented in multiple columns.


💡📝H. G. Muller wrote on Thu, May 16, 2019 09:53 PM UTC:

I started a new discussion for this, to not further contaminate the CwDA comments with unrelated stuff.

@Prussia General: Unfortunately looping over all piece combinations is not a standard feature in this version of FairyGen. The source code contains commented-out loop statements to do this, but that was from the time it used internal piece defintions rather than an external piecedef.ini file. It would also be hard to know exactly what it should loop over (e.g. which pieces in the file are acceptable as royal? Which as non-royal?).


Checkmating Applet. Practice your checkmating skill with fairy pieces.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Thu, May 16, 2019 10:10 PM UTC:

Well, it is a computer program written in a Turing-complete programming language, so anything is possible. But by themselves (i.e. in 3-men end-games like the applet calculates) pure hoppers like Paos, Vaos or Grasshoppers will never have any mates (i.e. they are 'insufficient-mating-material draws'), because they could only attack the bare King by hopping over their own King, effectively giving the latter King an extra sliding move. But even a Queen alone, which has all possible sliding moves, cannot checkmate a King. One doesn't need to generate an EGT to see that. So it is a bit pointless.

Pieces that have hopper moves in addition to normal captures might be able to force mate, but due to their own King being the only available 'mount', it would be very unlikely that their hopping move has any influence near the bare King when their normal moves do. And I don't know any variant that has such pieces anyway.

Hoppers could become of interest in 4-men situations, but making a 4-men version of the applet would be a challenge in itself. It would probably be more useful to first generalize the applet to handle divergent pieces, or bent sliders. Even if the generator supports that, there still would have to be some extra functionality in the user interface for defining pieces that have such moves.


Ohter names for the anti-rook[Subject Thread] [Add Response]
H. G. Muller wrote on Fri, May 17, 2019 09:48 PM UTC:

The Tamerlane Giraffe is a Gryphon with many blind steps. One could also have ski-sliders that skip several squares. In a sense the Picket is a 'lame' Ski-Bishop. And ski-sliders are a 'degenerate' case of bent sliders, which do change their step at some point (A->F or D->W), but not the direction.

IIRC an anti-slider is a piece that starts its move where the ray through it hits the board edge, and moves towards its old location from there. An equivalent way to describe that is a multi-hopper that must hop all pieces on the ray, except perhaps the last one, which it could also capture (if it is an enemy).


Chess variant engines and CECP (XBoard) protocol[Subject Thread] [Add Response]
H. G. Muller wrote on Sun, May 19, 2019 08:45 PM UTC:

That's indeed great news! I haven't been able to do any further work on KingSlayer yet; this entire weekend I spent at the semi-annual tournament of the Dutch Computer Chess Association where my engine Spartacus scored 0 out of 7...). Now that most of the end-games have been solved, I am ready to progress with that. 'Army picking' is an issue that I have no clear idea on how exactly to implement, though. Of course I want the engine to be able to do games between all the standard armies, controlled by the CECP name of the (sub-)variant (like cwda~nutters~fide).

But I want it to be able to do more than that, because my main reason for converting KingSlayer was to be able to improve the accuracy of piece-value measurements over what Fairy-Max was capable of, by taking into account pair bonuses and mating potential in the eval, and providing a generally better level of play (to be exploited by being able to do more games of the same quality in the same time). For this reason I want to embed pieces in armies to which they do not belong, so that they are part of the only imbalance in otherwise symmetric setups. This requires 5 piece types per player (plus Pawns plus King), which should not be a major problem, since the internal piece encoding uses 3 bits for piece type (while white and black pieces are independently specified), code 0 being reserved for empty squares.

So I would need some manner to specify 5 pieces for each side, taken from the total collection of all supported pieces, independently. This would not be so much of a problem for properties of a single piece, (such as value, mating potential or color binding) which could just be copied from a table. But it is more problematic to get properties concerning multiple pieces, such as the winning prospects of 5-men end-games. If armies can be arbitrarily composed there would be 16000 of those (for 5 armies), most of which I have not calculated yet because they would consist of unnatural or impossible combination. And I want to be able to test pieces not in any of these armies as well (such as R3, RF).

Perhaps the best method would be to program a heuristic for determining the winning-prospects based on the individual properties of the participating pieces (piece value, mating potential, color binding) that roughly captures the general trends that were revealed by the EGT generation I did so far, and then supplement that with a list of exceptions located in an external file. To be fully accurate it would be enough to only have the exceptions in that file that can occur with the piece sets currently in use (which, for unconventional combinations, could be calculated by EGT generation for the purpose, if not yet available).

Perhaps I should define a general variant 'cwda', which would be entirely configurable through an external file, the latter containing the info which of the programmed pieces occur in either army, and under which single-letter ID. Where piece number 1-20 are those of the 5 standard armies, (hard-coded in KingSlayer) and 21-26 would be configurable through the same file (as any combination of possibly divergent finite-range slides).


A could be interesting result about picket like limited sliders on a at least 12x12 board[Subject Thread] [Add Response]
H. G. Muller wrote on Mon, May 20, 2019 09:04 PM UTC:

I would think this is impossible. Diagonal moves of a certain length L have always lower average mobility than orthogonal moves of the same length: (S-L)*(S-L)/(S*S) instead of (S-L)/S, where S is the board size. They would get the same reduction factor because of board population, so blocking of moves doesn't alter that, no matter how you calculate it.


Chess variant engines and CECP (XBoard) protocol[Subject Thread] [Add Response]
H. G. Muller wrote on Tue, May 21, 2019 07:25 AM UTC:

It would be really, really awesome to make it smart enough that, when a game starts, even if it is a user-define game through an include file, it does enough endgame table generation to make some basic decisions about this stuff, but that is probably a long way off.

I think Sjaak II makes an attempt at that. Of course there are some cases where this is obvious, such as not attacking any orthogonally adjacent squares. Beyond that heuristics quickly get as complicated as a single iteration of EGT generation, meaning that code-wise there is litlle to gain, and you might as well put the loop around it to do the full generation, if you can afford it timewise. Without full generation you would probably never see that a Silver General has no mating potential, or that the forced mate with  a 'Turtle' (fhNfAbF) is almost entirely cursed because it takes on average 100 moves.

This is not out of the question; even the JavaScript generator in the checkmating applet typically needs under 100 msec to solve a 3-men 8x8 ending. And you could have the engine maintain a file where it 'caches' the conclusions from such EGT generation on disk. It could consult that file whenever a new variant is selected (or even just at the start of every game), to see if it contains data on all of the participating pieces, and if not, generate the EGT and add the data. With such a design it could even be acceptable to generate all 4-men of the participating pieces, to know what in general draws what, and which pairs of minors can checkmate. It only means that first time you use a newly defined variant it takes a few minutes to start.

A nasty aspect of EGT generation is that you don't just need the normal moves of the piece, but also the retrograde moves. For point-symmetric leapers and sliders these are the same, and even for asymmetric pieces you can just use the flipped version of the piece for the retrograde moves. But for bent sliders the moves are fundamentally different, and would need a separate provision in the move generator.


H. G. Muller wrote on Tue, May 21, 2019 07:16 PM UTC:

I now managed to have KingSlayer play some CwDA games against Fairy-Max, which it eventually could do without illegal-move complaints (and even win some). This is just the basics (move generator and check test); the material table is not implemented yet. The non-standard a-side castling of the Clobberers works, though. No bent or ski-sliders yet, so also no Dragons Army.

This already touched on some compatibility issues. Like Fairy-Max KingSlayer now supports two methods for variant selection: in variant 'fairy' the armies are decided based on White Army / Black Army engine options. This is compatible with Fairy-Max, which has a single engine option to select a pair of armies, but the options have to be set by hand anyway, and mean nothing to WinBoard. The other method is through the variant names, but the names are incompatible with those in use by Fairy-Max; I currently programmed names like "fide~nutters~(cwda)" (all lower case; the space existing WinBoard versions reserve for these names in the New Variant dialog is rather small, and capitals take more space). This we obviously have to sync between ChessV, Quaddrox and KingSlayer, and then I will adapt the names in Fairy-Max' ini file likewise.

The other issue is the piece IDs. I currently use the same as Fairy-Max already used. These are not very satisfactory, though; many were picked to match the piece symbol I picked to represent the piece in WinBoard (e.g. U for Charging Knight because I displayed it as a Unicorn, E for Waffle because I displayed it as an Elephant). They make no sense in a GUI that would use a less fanciful representation.

Promotion to an opponent piece will always be somewhat problematic in KingSlayer, as it can only support 7 piece types per army (including Pawn and King), now that I patched it to allow use of the formerly unused type code 7. So that could be its own pieces plus the opponent's super-piece. But then under-promotion to an opponent piece will always be impossible. This is not very important for the purpose I wanted to use it for, but it makes it a somewhat incomplete implementation of the official rules. Things could be stretched a bit further by dynamically assigning the piece type during the game. But that would not remove all limitations, and add a lot of cumbersome code for something that would be almost entirely hypothetical.

I also discovered a problem in WinBoard: it does not relay castling rights in a FEN when the corner piece is not a Rook. This never hurt Fairy-Max, as this relies on the 'edit' command rather than 'setboard', which does not relay any info on castling rights. So Fairy-Max would reconstruct these just based on the corner piece being the one from the initial setup. KingSlayer takes the rights in the FEN seriously, though, and in an engine-engine game the initial setup specified by the first engine would be loaded in the second engine, which then would lose its castling rights. (With external configuration of the initial position both engines would lose these rights, if they rely on 'setboard'.) There is a WinBoard command-line option that can force the castling field to a desired value, though (to force compatibility with the broken Arena Chess960 FEN), so I suppose that would be a work-around. Obviously I have to fix this in WinBoard.

 


H. G. Muller wrote on Wed, May 22, 2019 07:45 AM UTC:

But I'm not sure what the "correct" notations would be anyway.  I have assigned letters already but you probably won't like them.  I abandoned Betza's terrible, horrible, absolutely no good names at least a decade ago, using alternatives when they already existed. 

I completely agree. I am all in for renaming them, but I do think it is important we do it in the same way. 'Phoenix' is great, but what ID do you use, as the P is already taken? I would use 'X', as that is otherwise in little demand. 'Short Rook' (S) for the R4 would also be an obvious choice. I always liked the name 'Tower' for Rookish pieces (as there is also little pressure on T), but am not sure whether that would best fit the WD or the Charging Rook. 'Lighthouse' would also be a suitable name for an augmented Rook. 'Duck' for the HFD seems as good a name as any. Fairy-Max used 'Unicorn' for the Charging Knight, but this has already a Grant Acedrex meaning. How about 'Jockey' for a Horse/Man-like piece (other than the KN Centaur)? The Bede should probably have the name of some sort of (rather important) cleric. How about 'Ayatollah'? The FAD gives the impression of nervously jumping around, but the name Squirrel is already taken. It can be seen as an augmented Modern Elephant, but that seems a misnomer for a jumping piece in the first place. 'Kangaroo' would be fitting, but has occasionally been used for several other pieces.


H. G. Muller wrote on Thu, May 23, 2019 08:24 PM UTC:

"Lancer" does seem a good name, as a Lance seems to be a weapon ill-suited for lateral combat.


H. G. Muller wrote on Fri, May 24, 2019 06:46 AM UTC:

Wouldn't it be more logical to use 'E' for the War Elephant? It is likely to be depicted as an Elephant, so this would have a better mnemonic value.

You make a strong case for 'Lion'. (And it indeed is a very nice piece.) I suppose the reason I don't like it is that I am just too involved with Shogi, and that the Lion is such an iconic piece there. But I guess I just should come to terms with the fact that Shogi names often have completely different meaning than those in western chess variants, and that a (Drunk) Elephant is nothing like an Alfil, and a (Dragon) Horse nothing like a Knight.


H. G. Muller wrote on Sat, May 25, 2019 06:40 AM UTC:

I currently put an extra ~ in the names compared to what I proposed here earlier: A~B~(C) instead of A~B(C). This looked more balanced (the latter form suggested a tighter coupling between B and C). This would also make it possible to recognize '1-parameter' sub-variants by the ~ alone, e.g. bird~(10x8), carrera~(10x8).

Name explosion would occur when a sub-variant needs multiple parameters (such as CwDA); with a single parameter the possible parameter values would have to be mentioned anyway. We could solve it by introducing wildcards for the parameters: nutters~*~(cwda) would mean the variant group 'cwda' has two parameters, and 'nutters' would be a possible value for the first parameter. Such a partial variant declaration would be discarded if there weren't also declarations of the form *~rookies~(cwda) in the variants feature to specify some possible values for the second parameter. This is not backward compatible with existing GUIs, though; these would not recognize the * as wildcard, and take the names litterally. This problem could be ameliorated by making the engine such that it would also accept the names with the wildcard in it in the 'variant' command, and would treat the parameter value * as a command to keep the previous value of that parameter. A user could then still make the selection Nutters vs Rookies by first selecting nutters~*~(cwda), and then switch to *~rookies~(cwda). (On second thought, we could adopt the convention that a second parameter that is only given as a wildcard in all the supported sub-variants would be assumed by the GUI to allow the same values as the first parameter. The engine, when confronted with * for this parameter, could then use the previous value of the first parameter for it.)

BTW, many of the problems you mention for Cylinder Chess sound familiar. I remember that at some point of implementing XBetza support in XBoard I decided moves should be generated after 'lifting' the moving piece off the board, in order to allow bent multi-leg moves to pass back over itself (e.g. for igui). That caused XBoard to hang with an oR on an empty rank... I solved it by making the Betza-driven move generator such that it would treat all slides as finite-range slides with the maximum board dimension minus 1 as range. If you already support finite range slides, this would cause no extra overhead.

SEE is indeed troublesome, if there are pieces with fancy moves. But like you say, it isn't really necessary. Pure MVV/LVA already is pretty good, and Fairy-Max gets by with only sorting the MVV/LVA-wise best move in front, and searching the other captures in arbitrary order. My guess is that >90% of the beneficial effect of SEE comes from detecting if a piece is completely unprotected, so that HxL captures on it are safe. So I often use the simpler algorithm BLIND, which postpones HxL capture of protected pieces compared to MVV/LVA. This still requires you to know whether a piece is protected, though. The null-move reply could have told you, but in QS there is no null move. You could get (somewhat inaccurate) protection information as a side effect from the move generation that was done in the parent; this could have marked all pieces that block friendly captures as protected (e.g. in a bitmap of the board or of the piece list, or even a (packed?) set of counters, to be able to correct single protection for the piece that was moved).

KingSlayer uses MVV/LVA, but it has a provision to initially abort the search of HxL captures that go sour, to reschedule them until after the other captures have been searched. To this end it can pass the value of the victim as 'threshold' to the child. When that child then generates a capture of a piece more valuable than 'threshold' on that same square (which it would after H x protected L), it immediately returns 'abort score' INF+1 (so the caller can see that the capture was bad and needs to be rescheduled). As an extra it would also abort if the 'obvious gain' from capture on a different square would exceed 'threshold'. Where that gain is defined as the value of the victim if unprotected, or the difference between victim and attacker value if protected. This protection information is obtained from the parent (inaccurate as it is, but only used in 'second order'). Normally you would only abort on capture of a King (returning +INF, as no rescheduling is needed), i.e. use threshold = INF-1. This is what is done during the search of the rescheduled captures, to prevent it would abort again.

Duplicat moves are not really a very large problem; the duplicat should give a hash hit that makes it fail low immediately. Bifurcating pieces (e.g. bent sliders like the Griffon) also tend to produce them, if you are not careful to define the overlapping part of one of the branches as a lame leap.

Bent sliders (including the ski-jump case) are pretty nasty anyway. They blur the distinction single vs double check, as beside offering the possibility for triple (or even quadruple) check, they can cause double check to occur along a single path. So that contrary to normal double check, it can be resolved by interposition (but still not by capture of the checker). The ski-slide of the Wyvern thoroughly wrecks KingSlayer's implementation of check detection and handling. Perhaps I should not spent further time on that now, and try to get the other armies working as quickly as possible.

In that case I am nearly there; I have implemented a rather general material evaluation that reproduces the general trend of the EGT results, driven by a 32-bit 'properties' word for each piece type. The even bits in this word are used as flags to indicate whether that piece has the corresponding property (e.g. mating potential, color binding, lacking mating potential even as a pair, being rather weak for a major, etc.). As I won't do any score discounting with more than 2 pieces for each side, the property words can be added for each player, and when both pieces have a certain property, this cause a carry to the (originally unused) next-higher (odd) bit. This makes it easy to recognize conditions like having two majors (almost always a win), having a pair of Knights (draw), having only minors (draw against any defender), etc. Pieces with the 'super-piece' property will use a 2-bit field in the properties word to indicate their ranking, so that we can decide whether an extra minor on their side will make it a win.

It also detects uneven distribution of color-bound pieces over the square shades, to penalize that by a fixed score (which is equivalent to awarding a pair bonus), and declaring a draw when it happens to the only two pieces in absence of Pawns. And when both sides have full color binding on opposite shades it will discount the evaluation by a factor 2 even with many Pawns. This seems to capture the most important effects. I guess I could still have it invoke the existing code for detecting a KBP.K draw in all cases where the only remaining piece is color bound.

Still have to test everything, though.


H. G. Muller wrote on Mon, May 27, 2019 09:30 PM UTC:

OK, I seem to have produced something that works according to specs. I uploaded it to http://hgm.nubati.net/CwDA.exe. I had it play matches against Fairy-Max in FIDE-Nutters and Clobberers-Rookies, and there don't seem to be any illegal moves anymore. I did this using the old piece IDs of Fairy-Max, but in the uploaded version I replaced this by the new IDs we agreed on, but added a checkbox option that can be used to select the old IDs. The piece-to-char tables sent in the 'setup' command still always use the old IDs, though, and don't provide IDs for pieces of the opponent army; this is still something I have to fix. But I am not sure ChessV even looks at the setup command, and the pieceToCharTables probably have meaning for Win/XBoard only.

I also added a checkbox option 'Traitor promotion', where you can switch the possibility to have it promote to the super-piece of the opponent army on or off.

[Edit 2019-05-28] I fixed a problem with input of under-promotions, (which could not be tested by playing against Fairy-Max, as it never does those). It now also can do all under-promotions to pieces of its own army (the FIDE version of KingSlayer only considered promotion to Q and N, but not in all armies the other pieces are as redundant as B or R). The pieceToCharTables in the 'setup' command now use the piece IDs that are selected by the old IDs option, and merge in the super-piece of the opponent army, if the 'Traitor promotion' option is enabled.


Chess with Different Armies. Betza's classic variant where white and black play with different sets of pieces. (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Tue, May 28, 2019 05:30 AM UTC:

Indeed, these asymmetric variants from the musketeer.net website are very unbalanced. Sometimes as badly as playing 6 minors against 6 Rooks in FIDE.

I discovered that the generalization of 'unlike Bishops' in KingSlayer's drawishness detection is not satisfactory. I had it only kick in when both sides have a single piece (plus Pawns, possibly different 1 or 2 in number), and both these pieces are color bound. But from watching games with the Clobberers I noticed it still stumbles in completely hopeless draws with a huge 'naive' advantage. E.g. there was a game where it had Bede and Fad on the same shade, plus an extra passer, versus a Half Duck. All the opponent's Pawns were on the safe shade, ('passively' blocking his own, i.e. without the possibility to offer trades or a majority to create new passers), and the enemy King was blocking the passer on a safe square. All the Half Duck had to do to block all progress was neutralizing any King attacks on its Pawns. Which it could easily do sitting on the safe shade, though its F and D moves. A single Bishop on the safe color (which can also protect from a safe distance) would also have done.

So I guess any situation where you have only to like-shaded color-bounds plus Pawns should be classified as drawish when the opponent has a piece with significant diagonal power (so it can keep a Pawn protected against King attack) that is not bound to the same shade as the attacker. Under some conditions a Ferz would even do (e.g. a Pawn and the Ferz mutually protect each other, and block two opponent Pawns, while the King blocks the third (which is a passer). Tempo moves can be done with King or Ferz, depending on which of the two is far away from the attacking King. No way Bede + Fad + 3 Pawns would be able to beat Ferz + Pawn. While the naive advantage would be about +9 (Bede, Fad being worth 4-4.5, Ferz 1.5 Pawn)! Of course there is no Ferz in CwDA, but there are pieces with F moves. (They are of course worth a bit more, but then you are still at +7 instead of +9.) A or D moves could sometimes do too, when two connected Pawns and the piece cyclically  protect each other (although with D moves you can then only block two Pawns, rather than three).

So end-games with same-shade color bounds can also very drawish even with many Pawns, even when not just Pawns ahead but also in pieces. I guess these must be heavily discounted in order to play well with or against the Clobberers. Having a Knight as defending piece would probably not do very well, though, due to its color alternation. So it would depend on what pieces exactly the opponent has.


H. G. Muller wrote on Wed, May 29, 2019 06:39 AM UTC:

Well, this is the whole point of making KingSlayer play CwDA: its playing algorithm can take the effects of color binding into account. But it still requires some thought on what exactly it should pay attention to. The only things I discovered about color binding so far were obtained with Fairy-Max, which doesn't take any color binding into account. It thus might under-estimate the effects. E.g. it approximates the effect of the Bishop pair bonus by making all Bishops worth more than Knights. This biases it against trading B for N in general. Which helps to preserve the B pair, (as it should), but makes it unnecessarily shy in lone B vs N situations (which should be a self-inflicted disadvantage of having a Bishop), and it doesn't prevent it from breaking up the pair by Bishop trading in a BB vs BN situation.

But it still finds an effect of about half a Pawn. I.e. B tests about equal to N, also in 'anti-pairs' (on the same shade), but a true B-pair tests as 0.5 Pawn stronger than B+N or 2N. I also did tests with more than 2 Bishops, and concluded that with 3 Bishops (divided 2:1 over the shades) you get 1 pair bonus, and with 4 Bishops (2:2) you get 2, compared to the simple addition of lone-Bishop values. While one could argue that the number of pairs is 2 and 4, respectively, in those cases.

There is a completely different interpretation of this data, not in terms of a pair bonus, but of a binding penalty. With Kaufman values B=N=325, and the pair bonus=50, so 2B(2:0)=650, 2B(1:1)=700, 3B(2:1)=1025 and 4B(2:2)=1400. These same numbers would be obtained by setting B=350, and giving a penalty of 25 when they are not equally distributed over the shades. The remarkable thing is that the penalty doesn't seem any higher for a shade imbalance of 2 than for an imbalance of 1. So it doesn't seem to matter how much power you have on your strong shade (with non-color-bound pieces you could aim them all at the same shade anyway), but it hurts when you lack power on a shade. This would mean the magnitude of the bonus is not really dependent on the value of the color-bound piece, as it is mainly expressing the disadvantage of absence of a piece. Indeed a preliminary test with Pair-o-Max (a Fairy-Max derivative that takes pair effects into account in a primitive way) suggested that the bonus for Bede was also just 50. (Pitting 2 BD on like or unlike shade versus 2 BmW + Pawn.)

The situation in the Clobberers army should be pretty much like the 4B(2:2) case; after trading one BD or FAD you incur the penalty, which you lose again after you then trade BD or FAD on the opposite shade (making that effectively worth 50 less than the first), but which you would keep after trading the second of the same shade (effectively giving that the 'average' value). This is how KingSlayer treats it now.

But pair bonuses / binding penalties are relevant in the middle-game; in the late end-game you could be in a much graver danger than the penalty suggests, vulnerable to tactics that would destroy your mating potential. Like sacrifycing a Rook for the piece on the 'minority shade' in a 2:1 situation. (Similar to what makes KBNN-KR a draw in FIDE, while KBBN-KR is a general win.) But this weakness would only be fullly exploited if the defending engine would know about it; otherwise it would just randomly trade the Rook for a member of the pair that threatens checkmate, with a 50% probability that it leaves a 1:1 distribution, and will be checkmated later anyway. (Like that it should know in KBNN-KR that it should leave NN, and not BN.) Failing to fully exploit an advantage might lead to underestimation of the value of that advantage.


Chess variant engines and CECP (XBoard) protocol[Subject Thread] [Add Response]
H. G. Muller wrote on Wed, May 29, 2019 12:25 PM UTC:

The previous version was still plagued by a woken-up 'sleeper bug': all the end-game discounting worked fine when I tested it on setup positions for the end-game, but it did not apply it when the same end-game was reached in games! Turned out castling messed up the Rook counter, which had never mattered before, as the count was not used. But now it made the drawishness code think both sides had (tons of) Rooks. I uploaded a fixed version ("KingSlayer cwda-1.2") to the same link. This also prints some results of the drawishness detection for the root as part of the Thinking Output, so that it can be easily seen when it misjudges. Like Fairy-Max it slightly randomizes the first 8 ply of any game, (adding -8 to +7 cP to the score of each move in the root), to provide more game diversity in test runs.


Chess with Different Armies. Betza's classic variant where white and black play with different sets of pieces. (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Fri, May 31, 2019 09:07 PM UTC:

Well, it is difficult to asses whether this capability for a pair to statically create an impenetrable barrier for a King is really important. Actually I think that Wizards can just do it (on 8x8), when standing next to each other in the center. But very often pieces can inflict a 'dynamic confinement' on a King. As long as you have to spend fewer moves to maintain it than the King needs to escape, you have moves to spare for other pieces to approach. Besides, FAD complement each other in a different way: standing next to each other the completely cover a 5x6 area, As a result they can drive a King to the edge with checks, and checkmate it there, without any help. This makes them very, very dangerous.

Even a King + Bishop can dynamically confine a King on boards of any size. The King has to cover the hole through which the opponent threatens to escape, and has to follow the bare King as long as it keeps running in the same direction to renew the escape threat. But when it reverses direction, to try an escape on the other side (which he eventually must, as he bumps into the edge) you have one free move. Therefore a Bishop can checkmate together with an arbitrarily weak piece (as long as that can go everywhere) on boards of any size.


Chess variant engines and CECP (XBoard) protocol[Subject Thread] [Add Response]
H. G. Muller wrote on Sun, Jun 2, 2019 09:36 PM UTC:

A yes, this was something I couldn't test, because WinBoard doesn't accept dressed letters as promotion suffix yet. This was a bit of a subtle bug: the quote suffix was initialized to 0 when entering the MoveToText routine, and then set to a quote if promotion to the 7th piece type occurred before being printed. But by an oversight the suffix had been declared as a static char, so the initialization did not work on every call of MoveToText, but only at program start. So once a move with quote suffix was printed, all promotions would from then on be printed with this suffix. (But WinBoard happily ignored that.)

I uploaded a fixed version to the same link.


H. G. Muller wrote on Mon, Jun 3, 2019 06:19 AM UTC:

Are you sure you got the new version, and that there was no problem with your browser caching the old version? It should say cwda-1.3 for the version number, and have 'dragons' as one of the options for the White/Black Army (not properly working yet, though). I tested it with a position "8/6P1/6k1/8/8/8/8/1K6 w - - 0 1" in FIDE vs Rookies, and it does play g7g8q without quote in that position.

In earlier versions I had some crashes too, which seemed to occur when the score got extreme. This disappeared after I calculated the interpolation between opening and end-game evaluation in a less overflow-prone way, and the version I originally posted had played several hundred games against Fairy-Max without a single crash. It could be that I broke something when changing the check test to also work with ski-slides. (But I see in the log that this happened for 1.2, so this cannot be the explanation.) This crash also doesn't reproduce.

Indeed I did not put equal armies in the list it announces in the variants feature. It would recognize the names in the 'variant' command, but of course a proper GUI would never send those if the engine did not announce it supported those. It is possible to play equal armies by selecting those through the White/Black Army options, and then select variant fairy. (This is how I test, as it currently is the only method where it is compatible with Fairy-Max, when I tick the option for old piece names, and turn traitor promotion off.)

BTW, in the log I see that you did not send a 'memory' command to set the hash size. That means KingSlayer would use its default hash size, which is only 1MB.


Tenjiku Shogi. Fire Demons burn surrounding enemies, Generals capture jumping many pieces. (16x16, Cells: 256) [All Comments] [Add Comment or Rating]
📝H. G. Muller wrote on Thu, Jun 6, 2019 09:06 AM UTC:

I made an attempt to implement Tenjiku Shogi in Jocly. I even spent some time on the evaluation function. As a result it actually seems to play a reasonable game at 30 sec/move, despite its low search depth. (Jocly's generic JavaScript AI is not very fast.) The web applet can be found at:

http://hgm.nubati.net/jocly/jocly-master/examples/browser/control.html?game=tenjiku-chess


📝H. G. Muller wrote on Sat, Jun 8, 2019 06:42 AM UTC:

Ah yes, I only payed attention to the 3d display. Yet the 2d display is always important, as the images for that are also used in 3d for the promotion popup, which asks you whether you want to promoe or defer.

When I have more time I will make a file with images of all Shogi pieces.


📝H. G. Muller wrote on Sat, Jun 8, 2019 05:34 PM UTC:

Yeah, the Jocly 3d graphics run quite slow when you don't have a GPU (as is apparently the case on the virtual machine where I run Linux). I was a bit in a hurry to at least get the AI working, because I had entered it in the yearly Modern Tenjiku correspondence championship, and its clock was already running, and had ticked away 96 of the available 120 days. So I didn't pay any attention to non-essential details, as I normally would.

BTW, 2d would not solve the kanji problem...


Tai Shogi pictures. Photos of a commercially available Tai Shogi set.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Jun 19, 2019 05:37 AM UTC:

George sadly passed away many years ago, but his widow Angela Hodges is still selling the stuff at that e-mail address. Not sure if they also did Taikyoku Shogi, though.

What, in your opinion, makes it fun to play Tai Shogi? I have never actually played it, but it has always struck me as an extremely tedious variant. it has a royal that is so powerful there is really no hope to catch it short of completely exterminating its army first. And that contains hundreds of pieces. You can ask for a price list.


Turnover. Three ring sizes fit into each other, combining and splitting into different pieces, sometimes taking over your opponent's.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Jun 19, 2019 08:48 AM UTC:

Looks like an interesting game, although I am not sure it qualifies as a chess variant. Could you explain the rules? They are not on a pubicly accessible website, in so far I could find.

[Edit] Oh, I found a description in a PDF file on Google Drive. Some things are not yet clear to me, though:

  • It says the Pawn only moves one step. But is this only forward, or can it also move backward, when going to an empty square?
  • It says the win is by taking or turning all enemy Castles. But Castles can also be destroyed by their owner, through splitting them up. Which is neither taking nor turning.) Is it illegal to split up your last Castle?
  • What if I capture my opponent's last Castle by splitting up my own last Castle? Is this allowed? And if not, who would be at fault? Is it more forbidden to split up the last Castle, or more forbidden to move into its capture range?
  • Does a promotion reset the 50-move counter?
  • Does combining friendly pieces count as a turnover, for resetting the 50-move count?

H. G. Muller wrote on Wed, Jun 19, 2019 02:10 PM UTC:

Indeed, the particular combinations of rings that you have at any moment is not really preserved for a long time, nor hard to improve when sub-optimal. Piece values only have meaning in more conventional chess games because you typically will be stuck with a piece for a very long time, possibly to the end of the game, and if you have a weaker piece there is not much you can do to trade it for something more valuable. Here the actual combination is more like a positional advantage. Temporarily having the Bishop lose its moves by combining it with a Pawn is similar to blocking a good diagonal for a Bishop with a Pawn in orthodox Chess. (The Bishop might keep some of its other moves in that case, but here the 'Pawn' will temporarily acquire Knight ability, which should provide even better compensation.)

Yet you probably would not strive for combining your own Bishops with a Pawn. But remember that you can also 'turnover' an enemy Bishop by merging it with your Pawn, and that would be extremely advantageous, as now it is the opponent that loses the Bishop, and won't get it back when you split them up again. It would in fact be pretty hard for him to get it back at all. So it is really the value of the individual rings that play the role of piece values here.


Fusion Chess. Variant in which pieces may merge together or split apart. (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Jun 19, 2019 03:53 PM UTC:

I share the concern of Joseph DiMuro: this game should not be winnable except against the most incompetent of players. It would need some rule that you cannot move a royal slider through check, like in Caissa Brittannia, to make it a serious game.


Turnover. Three ring sizes fit into each other, combining and splitting into different pieces, sometimes taking over your opponent's.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Tue, Jun 25, 2019 12:10 PM UTC:

Ok, so the rule that you cannot destroy your own last Castle takes precedence, like in Atomic Chess. So with W: Cd1 B: Ce3, Qd2 it would be allowed to play Cxd2=C, as your new Castle would not be in check on d2.

I see there is an AI that plays this. Is that really strong, or is it just a demo?


Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Tue, Jun 25, 2019 07:19 PM UTC:

Could be that I did that intentionally. The universal leaper moves are generated by a piece of code that is completely different from the code that generates other moves. (As they are not relative to the start square.) And this code doesn't test for the target squares being attacked. In the Maka Dai Dai Shogi diagram the Emperor was the only royal piece, (as it was the last piece mentioned), but I did not want any royal piece, (as there is no rule against putting yourself in check there), and the fact that it is a universal leaper now hides this. But later I added commands to the diagram to set the royal piece by hand, and allow multiple or none. So this kludge is no longer needed.


Turnover. Three ring sizes fit into each other, combining and splitting into different pieces, sometimes taking over your opponent's.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Tue, Jun 25, 2019 09:11 PM UTC:

But d1 to d2 is not diagonal. Perhaps 'x' is wrong notation for this that confused matters.


H. G. Muller wrote on Sat, Jun 29, 2019 09:16 AM UTC:

Note that saying 'check' is something amateurs do; in official games this is even forbidden. In that light it seems the following convention could be useful for this game at amateur level, to help enforcing the checking rule (which might strike ordinary chess players as unusual):

A player that attacks a castle and suspects it might be checkmate can say 'check'. This obliges his opponent to point out at the end of his next move the Castle where his King takes shelter. If that Castle cannot be captured, the game just continues, because even if there was a genuine check it has apparently been resolved. If it can be captured, the player that pointed it out could be ruled to lose, or (in a more forgiving spirit) could be obliged to acknowledge his mistake and point out another Castle (or conceed he has been checkmated or played an illegal move).

As to notation: this is not really part of the game rules, and for orthodox Chess several systems exist (descriptive notation, coordinate notation, long/short algebraic notation). I don't particularly like the notation proposed here; personally I would just stick to an existing standard, like SAN. (Also for the reason of being able to process it with existing software.) This is based on identifying a move by mentioning the type of the moving piece and the target square, possibly augmented by as many coordinates of the starting square as is needed to distinguish it from other legal moves that would be witten the same without disambiguation.

Turnover Chess offers two new aspects one usually does not have to deal with: piece types are 'fluid', and besides capture there are the possibilities of (friendly) combination and turnover. in SAN one makes the distinction between capture and non-capture by inserting an 'x' symbol, (problematic on board with more than 23 files, but then, more than 26 files would be problematic anyway...), although this is redundant, as it is fully implied by the occupation of the target square. Apparently it is considered so helpful to make this distinction jump out that it is worth the redundancy. This would then likely be true for combination and turnover as well.

My first idea was to write any move to a non-empty square with 'x', but that would not distinguish combination / turnover from true capture. It is possible to make this distinction within the existing framework of SAN, however, by using promotion suffixes: any move that would not lead to the expected occupation (i.e. the outermost ring of the moving piece) of the target square could be written as a promotion to what does result. The use of 'x' would be determined by whether the former occupant of the target square was friend or foe. So Qe3 would be a non-capture, putting a Bishop on e3, while Qxe3 would in addition have captured an enemy there (Knight, Queen, Bishop or Castle). Qe3=Q would have absorbed a frienly Rook, Qxe3=K would have turned over an enemy Pawn. In all cases a Rook would be left behind, but that is implied in this game, and so common that it does not warrant introduction of more redundant symbols in the notation.

Some more remarks: I think that using K for Knight is a really bad idea. It is mega-confusing to chess players. Even if you don't have to use 'K' for indicating another piece type, it would be better to keep N for Knight. After all, you kept the names of the orthodox pieces, while they are really not pieces at all but just constellations of rings. You might as well keep their standard abbreviations. Not distinguishing Castles and Pawns in notation is probably also undesirable (even if they move the same). So I would always mention a Castle as C, (a good reminder for what is left behind), while Pawn moves could follow the normal SAN rule of using no type indicator at all, but always prefixing a 'x' symbol with their file coordinate. This remains unambiguous here, as Pawns can only have come from 3 squares to reach the mentioned target square, and only true captures can change file.


H. G. Muller wrote on Mon, Jul 1, 2019 12:55 PM UTC:

Initially I liked the logic of treating recombination/turnover as a non-capture, and true capture as a capture. But when I was thinking about notation, it struck me as even more logical to only treat the recombination as non-capture (i.e. straght Pawn moves), and turnover and true capture as capture (i.e. diagonal Pawn moves). Because only the latter two move types really gain anything; the recombination you can undo any time you want. So recombination is more like a noncapture, where you happen to be allowed to stay with multiple pieces in one square. My SAN notation scheme would only use 'x' for true capture and turnover (the latter with promotion suffix).

I have no idea whether this would actually make a better game. And it is of course silly to let convenience of a notation system influence the rules. But is strikes me as more elegant.


Wa Shogi. Game with many different rather weak pieces, with or without drops. (11x11, Cells: 121) [All Comments] [Add Comment or Rating]
📝H. G. Muller wrote on Sun, Jul 7, 2019 07:16 AM UTC:

Well, that we today play this game both with and without drops is only out of ignorance. At the time this game was invented the rules were of course known, and nothing would have been optional about them. So it would either have been one or the other always. Based on the power of the pieces I am now convinced that the original rules would have included piece drops. And with piece drops there is no such thing as (meta-)color binding; any piece can get captured, and re-appear on any color it wants. Also note that the Heavenly Horse is a promoted piece. Because of the promotion zone being 3 ranks deep and the way the Liberated Horse moves you can promote on 3 of the 4 possible meta-colors.


Chess variant engines and CECP (XBoard) protocol[Subject Thread] [Add Response]
H. G. Muller wrote on Mon, Jul 8, 2019 06:56 AM UTC:

Your diagnosis is entirely correct. Because KingSlayer was originally designed with only (2x) 7 piece types, it initializes the move-generator data for the four variable types from a larger list of all types depending on the army choice. But when 'Traitor promotion' is set it initializes the 5th variable type as a copy of the 4th, in the table for the opponent. But I forgot to flip the orientation. I will add a note to this posting when I have fixed it.

Good that ChessV now gives a memory command. I already had made KingSlayer a bit more robust to not receiving one, by having it interpret memory size 0 as 128KB and launching it with that size, and then check the memory size at the start of every search to see if it is still at 0, and allocating 64MB if it is. But relying on default hash sizes is likely to give rise to unfair use of resources.

[Edit] OK, I uploaded a version (0.1, same link) where the traitor orientation should be fixed. This was a bit tricky, as the initialization also collects all sliding directions of an army, to know from which directions it should expect discovered checks.


Rhino. A set of pieces which combine the movements of the Mao with that of the Wazir.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Jul 10, 2019 09:21 AM UTC:

Note that it must be trivially easy to checkmate a bare King with a Rhino, powerful as the latter is, in addition to covering two orthogonally adjacent squares. The checkmating applet cannot really do crooked sliders, but assuming that blocking doesn't play a significant role with only another King on the board, you can let it calculate a piece that directly leaps to the squares a Rhino would attack.

As is well known, the Gnu/Wildebeest, whose targets all fall on the Rhino paths, has no mating potential. This is due to a coincidental collision with the King. But just adding a single W move to the Gnu (say fW) already cricumvents this problem. So WNC, which is a subset of the Rhino (but leaping) already has an easy mate (maximally 19 moves).

The Mirror Rhino fares even better, as FN in itself has already mating potential (maximally 22 moves). The longer distance moves of the Rhino were only needed because without them no two orthogonally adjacent squares would be attacked.


Chess. The rules of chess. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Jul 21, 2019 09:16 AM UTC:

Piece values are an average over all plausible positions anyway, furthermore based on the assumption that the value of an army is the sum of its parts. (Although the B-pair bonus strictly speaking already is an exception to that). So it is to be expected that in individual positions the performance is not as good as the standard value suggests. E.g. the value of a Bishop is commonly considered to be dependent on the shade the Pawns are on. And a Queen is more valuable when the opponent has poor King safety, so you can effectively double-move it via intermediate checks.

What you show here is not evidence of that, however. That there is no obvious compensation doesn't mean there is no compensation. Apart from the Bishop-Knight imbalance, the position is quite asymmetric. So the absolute value of the position cannot really be attributed to material only. A better test would be to replace one of the white Bishops by a Knight, and then look how much the position scores on average. If white is then significantly worse you know it cannot be due to material, as that is perfectly balanced.


100 cell chess Vsevolod Dubrovsky[Subject Thread] [Add Response]
H. G. Muller wrote on Wed, Jul 24, 2019 08:25 AM UTC:

Stanislav's name and the fact that he brings this up at all suggests that he reads Russian. So why doesn't he put a discription of this variant on this website?

Google translate doesn't do too bad a job on this, BTW. It seems that this is a patented commercial variant (in Russia) that uses 2-step area-moving Ferz and Wazir as extra pieces, which furthermore aquire Bishop or Rook moves when on the same file as the King. Seems the King itself also has some extra capabilities, but I didn't really read that far.


Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Wed, Jul 24, 2019 03:47 PM UTC:

Oops... It seems there has been a mixup of versions at some point. This code was added as a hack to do Peace Chess, where pieces can combine to 'embracing pairs' coexisting on the same square. The IDs for these combinations are generated here automatically. Piece Chess of course only has 6 basic piece types, so for that purpose having the pair codes start at 64 located them well beyond 'nType', with a large safety margin. But I should never have used that hacked version for replacing the script that powers the diagram in general, at least not without modification. There is no reason why the 64 could not be replaced by (say) 400, to not wreck any variants with fewer than 400 piece types. (Without this hack the limit was 512 piece types; the 512 bit is used to indicate piece virginity, the 1024 bit for piece color.)

Thanks for spotting this; I will fix it soon.


Video Tutorial[Subject Thread] [Add Response]
H. G. Muller wrote on Wed, Jul 31, 2019 07:19 AM UTC:

Are you talking about Game Courier now to play it here on-line, or about ChessV? I don't think that in ChessV you can do any of these things; ChessV is not a general configurable variant engine, although it does have a mechanism to configure some (mostly minor) rule variations on the games it supports. And I don't think it is open source. Greg can tell us more about that.

As for Game Courier; I am sure all that is possible there, but in practice you have to be a programmer to be able to write a rule enforcing preset. For this reason the large majority of presets have no rule enforcing at all, and just leave it to the players to enforce the rules. Erroneous rule enforcing is much worse than having no enforcement at all. This should be a good option for the mentioned 100-cell chess, as the location-dependent move rules seem to give it above-average complexity.


Wildebeast9. A Variant of Wildebeast Chess.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, Aug 22, 2019 09:53 PM UTC:

And a Shogi board is 9x9, not 9x10. (Xiangqi is 9x10, but this also doesn't qualify as a Xiangqi board, which has a Palace and a River.)


H. G. Muller wrote on Wed, Aug 28, 2019 07:54 AM UTC:

Note that the Wildebeest does not have mating potential in your game. (Unlike in Wildebeest Chess, where stalemate also is a win.)

Also note that you do not consistently use the same spelling for the name of the piece, and that the promotion rule as described in the article (twice!) says indeed something entirely different from what Greg wrote. And, to really nitpick, that "all other cases" to that where you do not have a Queen is just the single case where you do have one.


Threatened Pawn Chess. Pawns start in threatened positions. (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Mon, Sep 2, 2019 04:29 PM UTC:

This would not only bite you when you limit QS depth. Even if you do an unlimited-depth capture search, you would see phantom mates if you don't consider non-capture evasions (interposition or King withdrawal). You either must consider all evasions (effectively switching back to a d=1 search) on a check, or you should allow stand-pat even in the face of a check, assuming that a non-capture evasion that doesn't give away any score always exists. (Which would obviously make you overlook true checkmates in QS. This is not as bad as it sounds, as most checks are indeed not checkmates.)

QS explosion is a serious concern in general variant engines. MVV/LVA sorting might not be good enough to suppress plunder raids if capture modes other than replacement are possible. E.g. Lions in Chu Shogi are disastrous, when they can jump into the opponent's camp to a save square, and then then just sit there eliminating all neighors in combinatorially many different orders. Fire demons are even worse.


H. G. Muller wrote on Mon, Sep 9, 2019 08:38 AM UTC:

I had similar problems in Shogi, when I tried to search check drops in addition to captures. Some lines just continue forever, and with depth-first that is of course fatal. This looks especially stupid when alternative moves to the infinite line in many places include a mate-in-1, which would have alpha-beta pruned the infinite line had they been searched first. So I tried a scheme with an iteratively deepened QS that would back up score intervals rather than one-sided score bounds (and would return {standPat, INF} for QS nodes with captures that were too deep to search), deepening it until the interval in the QS root collapsed to a single value. This way you would find the closest forcible (through QS moves) mate before searching any deeper lines. But this still wasn't enough to make the problem disappear, so I abandoned that again, and only search captures now.

The problem is that this is really very wrong in games with piece drops. Even recapture exchanges are often meaningless there, as the capture of a protected piece might give the opponent the piece in hand that he needs for an all-check-drops mate, so that you cannot afford to recapture. It seems Bonanza in every QS node first does a 3-ply checks-only search to see if it can checkmate that way, and if it cannot searches only captures (or stand-pat).

Even most engines for orthodox chess limit the search of checks to the first two ply of QS. They are furthermore selective in what checks they search, and usually prune those that can be evaded by a SEE > 0 capture on the checking piece.

It is still an open question for me how, when you have a QS that also is controlled by a depth parameter, you can best increase the tree size in an iterative deepening scheme. The simplest way would be to just keep the QS depth fixed, and iterate the depth of the full-width search as usual. I suspect this is very sub-optimal, though, as it requires the tactics that QS misses because of the depth limitation to be discovered by the full-width part. Which is not only the most expensive thing you could do in the leading plies from the position that was too complex, but adds to the tree everywhere. It leads to the complex tactics being resolved only when the branches ending in simple tactics (presumably the large majority) have already been deepened too, while the resolved score could be such that it upsets the entire tree, making most of the deepened lines irrelevant.

Increasing the depth of individual QS until they converge OTOH leads to very much (possibly infinite) effort on QS that in the end might turn out to have scores that makes the branch leading to them irrelevant. Iteratively increasing the QS depth limit in the tree as a whole before increasing the depth of the full-width search would waste a lot of time walking the same full-width tree in parts where you encounter only QS that have already converged for the current depth limit.

I have the feeling it should be possible to control the search depth with a single parameter from the root, which would both increase the QS depth limit and the full-width depth as it grows. E.g. with a QS that does an M-ply all-capture search followed by unlimited-depth recapture-only, you could keep track of whether the QS actually did prune any captures that were not recaptures. If there were, M was not large enough to converge the QS, and would have to be increased. The search could be made to converge the QS first, before being allowed to search any non-captures. E.g. by counting each QS ply as half a full-width ply, and when an N-ply search is requested, start with a QS there, increasing the QS depth limit to at most 2N. If QS converges before that, it all moves with a d=N-1 reply (or applicably further reduced), if not, it just returns the unconverged QS result (signalling to the parent that it cannot yet switch to full-width).


Fairy-Max: an AI for playing user-defined Chess variants. A chess engine configurable for playing a wide variety of chess variants.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Tue, Sep 17, 2019 03:29 PM UTC:

On my Linux system on an Intel PC I never had any such problems with XBoard + Fairy-Max. Which is the essential change that finally made it work for you? The fflush(stdin)?


Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Thu, Sep 19, 2019 03:46 PM UTC:

Currently the diagram is limited to a single locust capture. Which already makes the Lion Dog of the large Shogi variants fall beyond its capabilities. If this were solved (e.g. by allowing an array of locust-victim coordinates), the XBetza notation could specify each number of victims separately, e.g. RcdafRcdafcdafR ... Which for a big board like Taikyoku's 36x36 becomes of course very cumbersome.

Perhaps there would be some benefit of extending XBetza notation with a 'repeat count' on a group of modifiers. This would then replace the 'a' modifier. A leading '0' on the number could indicate 'exactly that many', where otherwise it would mean up to that number. So cd02fR would then mean cdafcdafR. Where the expansion rule is that the repeat count would group with preceding modality modifiers, and following directional modifiers. (So that you could still slam an initial directional modifier on the first leg, and a different modality modifier on the last one. That would allow description of the Tenjiku jumping generals as multi-hoppers: Rp14cR or Rp0cR.)


8-Piece Chess. (Queen's Army chess, all 8 Back Rank Pieces different).[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Fri, Sep 20, 2019 07:36 AM UTC:

A common work-around for spoilers is to print them as white text on a white background. Selecting it then usually makes it visible. This editor doesn't seem to have a button for selection of the font color, though. But of course this could be done through HTML tags. Like below:

This sentence is printed in white.


Chimera Chess. The highlight of this chess variant are the Chimera pieces, which are substantially enhanced versions of the orthodox Knight.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Oct 6, 2019 07:20 PM UTC:

As an opposing army for orthodox Chess this seems way too strong. A leaper with 16 targets typically is worth about 7 Pawns, and with 24 targets about 11 Pawns. Together with the Sages, which are about Knight value, this already balances the fide army. But in addition you have the two Flying Jesters, which are major pieces, and should be worth at least a Knight, and more likely about 4 Pawns each.

So pitting this against fide is like being Rook + minor ahead...


Testing[Subject Thread] [Add Response]
H. G. Muller wrote on Tue, Oct 15, 2019 05:20 PM UTC:

Well, now you are testing, perhaps you can also test this: when I was submitting my latest chess variant, the submission form was using cached data every time I opened it to make a change. With as a result that the modifications I made would have disappeared next time I opened the input form, unless I would first refresh it with Shift + Load to ignore cached data.

I am not sure if this is just a problem with my FireFox settings, but it seems very undesirable behavior.


Veteran Chess. Most pieces can or must irreversibly promote when they capture.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Fri, Oct 18, 2019 08:15 AM UTC:

Alfaerie is one of the six preconfigured settings in the design wizard for the interactive diagram, (setting the right values for the image directory, square size, white/black prefix and graphics type at the press of a button), and in fact the default choice. Other buttons give you Abstract, Motif, Utrecht, 2 sizes XBoard presets. And of course you could use your own uploaded graphics, by supplying the location and other parameters to the design wizard explicitly.

For the pieces I needed Alfaerie was not too bad. I had to improvise a bit for the (Mounted) Veteran, using the Wazir(-Knight) instead, thus only indicating the non-capture move correctly. But that seemed acceptible.

Some of the other Alfaerie pieces look embarrasingly simplistic (e.g. Elephant), so I usually prefer the XBoard theme when I need any of those. Even the orthodox pieces look pretty ugly in Alfaerie; they are not anti-aliased, giving them a very ragged appearance. This is so 20th-century... I think it is high time someone would take the trouble replacing all the Alfaerie image files by anti-aliased versions (with alpha channel).

versus  

BTW, I am happy you like Veteran Chess. I have not programmed it into any engine yet, but I play-tested it against a regular participant of the Dutch Superchess championship over the board, and it seemed quite playable. That 1:1 trading is discouraged by leaving the opponent with a promoted piece seems compensated well enough by that in 2:1 trading you can promote your second piece to compensate for the loss of the first. E.g. a Pawn protected by a Pawn is pretty much unassailable in orthodox Chess, but here after BxP, PxP, NxP=M promoting the Knight to a Rook-class piece plus capture of two Pawns seems enough compensation for the Bishop. So you don't get into stand-off situations too easily.


Tandem Chess. 4 player variant where pieces taken from your opponent are given to your partner. (2x(8x8), Cells: 128) (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Tue, Oct 22, 2019 09:49 AM UTC:

I am a bit worried about this paragraph that states a dropped Rook is considered virgin (and thus fit for castling). As far as I know there doesn't exist any on-line server that uses this rule, or any engine that plays by this rule. It is also a very weird rule: when you move a Rook you lose castling rights, and moving it back to a corner normally doesn't restore them. And a drop move is a move like any other.


Sosarian Chess. 12x8 Game with Capablanca-type pieces plus two lions.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Nov 3, 2019 08:59 AM UTC:

Note that the rules of this game aren't really described anywhere. Through a large detour (the game's comment page, the actual preset, the 'Rules of Sosarian Chess' item in the 'Related Pages' menu) you finally get to a rule page, but it is the rules of 'Lions and Unicorn Chess' instead.


MSsuzumu-shogi[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, Nov 7, 2019 10:00 PM UTC:

Interesting game. It begs some questions, however:

  • What made you decide the move of the Demon and Jumping Generals in Tenjiku Shogi make that game 'unplayable'?
  • Why do you prefer the standard Shogi promotion rule over the Chu Shogi rule?
  • What is the point of disallowing a jump for the double King move of the Demon? The area move it has would be able to reach the same squares through multiple paths, and they are unlikely to be all blocked. Especially since any obstructing enemy can be destroyed in the process. So in practice it would only delay development of the Demon, when the latter is still behind a solid wall of own pieces. Which you probably would not want to develop very quickly anyway, valuable as it is. So it doesn't seem worth introducing a new type of move, rather than just taking Demon = Buffalo + Lion + Area Move.
  • The value of the Demon with the move you give it would not nearly be 3 Jumping Generals. I am not even sure it is worth more than a single VG or GG (even when the latter have limited jumping power). The Lion power isn't worth that much, since most Tenjiku pieces are 'Lion proof' (i.e. have all King moves, so you cannot bring igui to bear on them as an attack). Note that some Tenjiku players value the Lion Hawk (as Bishop + full Lion) less than a Queen. BTW, the rule of thumb that a Demon is worth three Jumping Generals in Tenjiku Shogi only holds when these Generals are still able to inflict smothered mates, which can only be averted by giving a Demon back. Otherwise Demons that burn are priceless: losing one is losing the game. Conventional pieces have no defense against a Demon.

H. G. Muller wrote on Fri, Nov 8, 2019 08:04 AM UTC:

The Q=9 > LH=8 was from http://tenjiku-shogi.net/tutor3.htm, which discusses the 'modern' version of the game, i.e. with full Lion power for the LH. (Which, IMO, also is the historic move.) But I admit that these values are controversial. In the ongoing game (#2188) at the PBeM server the opponent of my engine happily traded his Queen for the bot's Lion Hawk. As neither of the remaining Q/LH has engaged in battle so far, it has still remains to be seen who had the good deal there. It should also be taken into account that a Queen is promotable, and a Lion Hawk not. But the Q=9 value comes from a rule set that uses the TSA move for the Free Eagle, which is a rather insignificant promotion (no igui, just 4 extra jump moves to already accessible squares).

It is difficult to guess whether GG or VG is the strongest general in Suzumu Shogi. I think that even in Tenjiku Shogi GG is only better than VG because of the ranking. An area move is very powerful (up to 48 targets!), and could very well be worth more even than the orthogonal jump-captures over arbitrarily many pieces. Limiting it to jumping 2 pieces would obviously weaken the latter further.

As to the number of checks: it is obvious that the conventional rules for perpetual checking can make some theoretically won end-games very tedious, and in combination with a 50-move type rule possibly even draws. I am not sure that limiting this to 4 doesn't hurt the game, though, by making it too easy to draw. On such a big board it might be too easy to deliver 4 checks before a King can reach shelter. Think of a Rook versus an exposed King; normally the King would just creep up to a checking Rook, after which it cannot continue checking, and the checked side gets the opportunity to start his counter attack (say in K + Ln vs K + R). Especially with Jumping Generals it could be difficult to defend against checking, when the board population thins.

 


Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Mon, Nov 11, 2019 08:31 AM UTC:

In any case it should be clear that you can never capture a piece after it moved away with the second move, just because it was in a location after its first move where you could capture it. It would be highly illogical if e.p. capture would be an exception to that. Whether you want a second move done with a different piece to destroy e.p. rights is a matter of choice.


H. G. Muller wrote on Mon, Nov 11, 2019 05:37 PM UTC:

Well, another move should clear the e.p. rights generated by any previous move. Like it always does. E.p. rights are transient, and last only to the end of the next move. (And not to the end of the next turn!)


H. G. Muller wrote on Mon, Nov 11, 2019 08:49 PM UTC:

What I cannot imagine is that the original inventor would have thought it reasonable to allow e.p. capture

  1. when the capturing Pawn has not seen the other one move past it
  2. when the Pawn that moved is no longer there
  3. when the e.p. square gets occupied

FairyGen. Generator for end-game tables with fairy pieces.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Tue, Nov 12, 2019 09:04 AM UTC:

This unfortunately runs into one of the limitations of FairyGen: it assumes there are always at least two white pieces. It uses that for the application of symmetry to save memory: it only tabulates positions with the first piece in the triangle a1-d1-d4, and when it is on the diagonal a1-d4, with the second piece in a1-h1-h8. Other positions are mapped onto these by vertical, horizontal and diagonal flipping. But this is only done after white moves. The assumption was that a bare royal would never be able to win. Of course for 3-men EGT memory is not a very large concern, and even for 5-men the EGT would only measure 1GB (=64^5), which isn't much for today's memory technology. When I wrote FairyGen even my largest computer had only 1GB. I guess I could compile a version that doesn't apply any symetry at all, and try if that one does 1+2-men without problems. (I already have versions that I made for private use, that can handle reduced symmetry, like needed for the pieces of the CwDA Nutters army, but even there it still does horizontal flipping.)

To define divergent moves in the piecedef.ini file you can add an 'm' or a 'c' to the third parameter. E.g.

X: 1,0,sm* 1,1,sc*

would be a piece that moves like a Rook but captures like a Bishop. To define a piece that doesn't capture at all you just make all its moves 'move-only'. If you want a piece without any moves or captures, perhaps you can just leave the entire line after the colon empty. I never tried that, but I think it should work.


Victorian Chess. Play Victorian Chess on Game Courier.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Tue, Nov 12, 2019 10:41 AM UTC:BelowAverage ★★

It seems awful to have the Queen (a non-jumping piece) starting trapped in the corner; you now cannot develop it without breaking the Pawn shield, so j-side castling becomes very unattractive. Two-step castling sucks anyway, on 10-wide boards.


H. G. Muller wrote on Tue, Nov 12, 2019 02:28 PM UTC:

In the greater scheme of things it makes not so much sense, though. The purpose of castling was to efficiently cater to the common desire to get the King to safety without locking any non-jumping pieces in the corner. There is only little safety so far away from the corner, and a few extra King moves must almost certainly follow, partly defeating the purpose. Q-side castling in orthoChess is already only borderline useful, and not done very frequently, because you end up on c1 rather than b1. And you still lock in the Queen.


Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Nov 13, 2019 08:51 AM UTC:

I support that interpretation. The pair of moves should be legal, and a first move that only occurs in illegal pairs should therefore be considered illegal itself.

One can compare this with the handling of the touch=move rule in FIDE rules, which also makes a turn a two-event action: lifting a piece, and then dropping it. If I play Carlsen with black, and start touching Ra8 after his opening move, I cannot claim a draw on the basis that this Rook has no moves, and I am not in check, so that its a stalemate. I simply must grab another piece to move.


H. G. Muller wrote on Wed, Nov 13, 2019 04:05 PM UTC:

I would consider the latter solution perfectly acceptable. In my Shogi engines I use something similar for Pawn-drop mates; rather than engaging in time-consuming testing whether the move is legal, just reverse the score of a checkmate when the previous ply was a Pawn drop.

I don't know if the interface already commits the user to the first move after he entered it. If not, and he can still take it back, you don't really have to do anything. Whatever he does for the second move will be rejected as illegal, so sooner or later he will decide to try another first move.


FairyGen. Generator for end-game tables with fairy pieces.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Wed, Nov 13, 2019 05:56 PM UTC:

Oops, my bad! Non-capture only is indicated by 'n', not by 'm'. I was mixing it up with Betza notation. :-(

So the non-capturing Rook (Betza mR) would be R: (1,0,sn*). An 'm' would be simply ignored; FairyGen checks for occurrence in the string behind the second comma for 'n', 'c', 's' and '*' only. You don't have to specify anything about captures if you don't want them.

Using (0,0) as step for a completely immobile piece might work, as the piece would see itself in the target square, and captures of friendly pieces is never allowed. It should not be needed, though. But there must be a space behind the colon, perhaps this was the problem.


Betza Notation. A primer on the leading shorthand for describing variant piece moves.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Nov 13, 2019 10:47 PM UTC:

I implemented a new enhancement of XBetza notation in XBoard, to be able to more precisely indicate generation of e.p. rights on oblique moves. 'Non-jumping' is an ill-defined concept for those; nN could be a Mao or a Moa, so with the existing convention ifmnN would not sufficiently specify what the blocking square (and thus e.p. square) is. For that a multi-leg description fully specifying the path is necessary, like mafsW for the Mao.

XBetza uses the 'e' modifier to indicate e.p. capture, as alternative to the 'm' and 'c' modality. But this only seems useful in the final leg of a muti-leg move. So I redefined the meaning of 'e' in a non-final leg to me an 'm' move that generates e.p. rights on its target square. This would make the double-push of a FIDE Pawn ifeafmW. (And its e.p. capture feF, which can combine with the normal capture to fceF.)

[Edit] On thecond thoughts I wonder if it wouldn't be better to use the 'n' modifier instead of 'e' for indicating generation of e.p. rights by a non-final leg, and reserve the latter for actual capture. When laying out a lame-leaper trajectory one will almost certainly use a stepper atom (W, F or K), and 'n' can never have its traditional non-jumping meaning there. OTOH, e.p. capture on a non-final leg is not completely out of the question: one could want to define an e.p.-capturing Checker, feafmF, where the 'e' on the non-final leg then means that leg should end on the e.p. square (by definition empty), and that the move as a whole leads to removal of the previously moved piece as a side effect. Double-push FIDE would then become ifnafmW to generate e.p. rights.


Frog chess[Subject Thread] [Add Response]
H. G. Muller wrote on Thu, Nov 14, 2019 09:45 AM UTC:

Capablanca Chess has about 16% draw rate between equal players, compared to orthodox Chess about 32%. (That doesn't account for the limit of near-perfect play, possibly with the aid of exhaustive opening theory that prevents mistakes before the game reaches the stage of a dead draw.)

Draw rates tend to fall for games within a group of players of very diverse strength, as many games will be a guaranteed win for the strongest player.


Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, Nov 14, 2019 10:03 AM UTC:

Is this really a problem? If you score stalemate after the first move as -INFINITY (which it would automatically get when you score King capture as +INFINITY), the node that searches the first move will end up with score -INFINITY if it has no legal pair of moves. Only there you correct such a score to 'draw' if the player is not in check. This assumes actual checkmates get a slightly better score, either by adjusting them for distance to the root in the leaf itself, or by a delayed-loss bonus when propagating towards the root, so that positions heading for a forced checkmate will not be mistaken for stalemates. (Note that a consequence of the proposed rules is that when your only 1-step-legal check evasions stalemate yourself, this would count as a checkmate.)

BTW, I thought that Sven Schüle said he had made an engine, in the TalkChess discussion you already referred to. I never got around to making a Fairy-Max derivative for it.


H. G. Muller wrote on Thu, Nov 14, 2019 10:32 PM UTC:

We might miscommunicate, because I am thinking in terms of a pseudo-legal-move search, while you might want to determine move legality before searching them. For me an illegal move is simply a move that receives score -INFINITY when I search it. In an engine for normal chess this happens when the next ply captures your King, which gets awarded +INFINITY, and is then negated. Incidentally -INFINITY is also the start value of bestScore, and if it is left at -INFINITY all of the moves must have been illegal. That means mate or stalemate, and if stalemate is a loss both can get the same score, and -INFINITY would be a very suitable value, and you don't really have to do anything other than just returning the maximum move score.

IMO independently trying to establish legality of moves in a search is just a waste of time, as moves are legal more often than not. Just do the search, and when the move is illegal this will discover it soon enough, and will return -INFINITY. But most of the time there is nothing to discover. As long as an illegal move will get a score lower or equal than anything else, the search will work fine.

If you want to test legality of an input move, just do a sufficiently deep search on it (1 ply + QS in normal chess, 2 ply + QS in Marseillais), and reject it if the score is -INFINITY. You don't need any special code for that. I you want to make a list of legal moves (e.g. for the purpose of highlighting taret squares), just write a small loop to subject every prseuo-legal move of interest to such a search.


H. G. Muller wrote on Fri, Nov 15, 2019 07:08 PM UTC:

About the FEN: is this really needed? Why would one ever want to have a FEN for a position after the first move? In orthodox Chess we also do not have a special form of the turn indicator for positions half-way a castling, where the King has already moved and the Rook is yet to move. Or in Chu Shogi, for after the Lion made the first leg of a locust capture. The exceptional case for the initial position can already be recognized from the full-move counter in the FEN.

[idea!] Why not use a fraction on the full-move counter if you want to do this?  E.g. move 10.5 would mean after the first half of the 10th turn of the player on move.

As to legal move generation:

It seems to me that a Marseillais Chess cannot be implemented without some dedicated code that would be useless in single-move variants. One task for this code would be to score a stalemate after the first move different from one before it, namely as an illegal position (whatever score you want to use for that) rather than a draw. A second task should be to treat first-moves  that get such a score as illegal moves, i.e. ignore them, and correct the legal-move count that might have been made during move generation for it. This would need a 'delayed' mate detection to handle the case where this count hits zero because all 1-move-legal moves turn out to cause self-stalemate the player, aborting the node with a checkmated or a draw score depending on the in-check status.

It should be clear that you cannot judge the legality of a turn before you have seen the full turn. So that would be 2 ply in Marseillais, and a progressive number of ply in Progressive. If you wouldn't try the last ply of the turn, you could never know if the turn can be legally completed. Unless of course the rules guarantee there always is a legal move irrespective of the position, e.g. because passing on the second turn is always allowed. If you do a full judgement on the legality of the position after the turn, one turn should be enough.

The reason I mentioned QS was because I assumed this would be required to detect the fact that the previous ply exposed the King. The assumption was that the root node of QS would start generating moves, and detect that one of the moves captured the King before really searching any. And then abort with a very happy score. So it would always be a 1-node QS, or a dedicated King-capture test, if you want. Depending on the variant there could be simpler ways to detect King capture than generating all moves and see what they hit. E.g. making all possible retrograde captures from the King, and see if they hit an enemy that reciprocates one (sometimes referred to as the 'super-piece method').  Depending on the complexity of the moves in the variant the super-piece method might be cheap or very expensive. (E.g. bent sliders, Cannons or Fire Demons are a pain.) Just generating all prograde capture moves, which you must be able to do anyway, is always a sure method, though.

How much extra you need compared to the turn you want to judge the legality of unavoidably depends on how complex the conditions for legality can be in the variant at hand. Take the Shogi Pawn-drop-mate ban. To detect it you must be able to see that that the Pawn drop checks (which is of course trivial), but that every conceivable reply move is illegal (exposes your King, or perhaps (worse) completes a perpetual checking cycle). So that is two turns plus a King capture test.

But it can be worse. Imagine a variant where it is illegal (rather than just losing) to expose yourself to mate-in-1 (rather than just to King capture). To judge a move you then have to take into account all replies that check, and then all evasions to any of those, to see if these expose the King. That is 3 ply + 'QS' (or 2-ply + mate-test). Imagine a variant where it is illegal to check when you cannot continue checking until you checkmate. (Tsume Chess?) Far fetched? Take the chained release moves of Paco Shako, implemented as a multi-move turn. It is illegal to release a piece from an embrace (by jumping into it) if the released piece cannot find an empty square to go to, an enemy to enbrace, or trigger another legal release. You will have to verify that at least one chain of releases (no matter how long) exists that terminates. There is just no predicting how many ply it can take.


H. G. Muller wrote on Fri, Nov 15, 2019 07:21 PM UTC:

French translation:

Marseillais Chess is a chess variant where each player plays two successive moves. On top of the rules for the normal game, the players must honor the following rules:

  • A player that is in check must evade the check on his first move.
  • If a player checks a King with his first move, he loses the capability to play a second move.
  • If, after having played his first move, a player finds himself in a position where it is impossible to play a legal move, this is considered a stalemate.
  • En-passant capture should be performed with the first move, except when two e.p. captures are possible. In the latter case, the two e.p. captures can be made in each of the two moves.
  • Pushing Pawns two spaces beyond their initial location cannot be considered a double move (two advances of one space). So the player can make his second move after that.

 


H. G. Muller wrote on Sat, Nov 16, 2019 08:47 AM UTC:

Yes, FEN is very useful in general. What I was questioning is whether it would be useful to design special FEN conventions for representing game states halfway a turn. I have never seen an orthodox-Chess puzzle like "white mates in four after he has touched his Rook", or people pushing for a FEN field to indicate which piece has been touched. Or a Chu Shogi problem that said "white mates, now that he has captured a Gold something with the first leg of his Lion move. Neither can I imagine why you would want to load a position half-way a turn in a GUI or engine.

 

More later


H. G. Muller wrote on Sat, Nov 16, 2019 05:18 PM UTC:

But then I am not so happy that this requires an alteration of the normal (full-turn) FENs, which would require w2 and b2 stm field in your proposal. I would much rather have it that the exceptional partial-turn FENs would require something special. As the full-move counter is actually completely useless, and in balanced Marseillais the first turn is special in that it only allows a single move, recognizing half-turn FENs by artificially setting their move count to 1 would be OK with me.

The WinBoard Alien Edition would not consider positions half-way a turn not as game positions; when you step through the game later it would always alternate player between two turns, and show the effect of the pair of moves (like it was dealing with castling). Animation of the move might tell you the order.

As to the legality issue: I took the pragmatic approach in my Shogi engines as well as WinBoard: I do not consider Pawn-drop mates illegal, just losing. If checkmate is detected, its scoring depends on whether the previous move was a Pawn drop or not. So even without engine WinBoard allows the user to enter the Pawn drop, which then will end the game for him as a loss. For Shogi this is of course entirely justifiable. But it would not disturb me if Marseillais was treated the same; if we thing it should not be allowed to stalemate yourself after the first turn, just detect the stalemate and declare it a loss if the user elects to play into it.


Fibnif. Moves one diagonally or makes a forwards or backwards knight jump.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Nov 17, 2019 10:01 AM UTC:

Note that as part of an attempt to get rid of the ridiculous names of some of the CwDA pieces it was decided the Fibnif should be renamed to Lancer.

And yes, a pair of Lancers is pretty good at checkmating. An overview for various board sizes:

board size won lost worst-case/average DTM
8x8 98.3% 69.8% 21 / 12.4
10x8 98.4% 74.1% 23 / 15.0
12x8 98.4% 77.0% 27 / 17.9

Given that Knight + Wazir is already won, and that blocking plays virtually no role at all in the late end-game (especially when the losing side cannot block because the squares where this could be done are attacked by the piece itself), two WazirKnights should have no problem at all. My EGT generator does not do lame leaps, but with a pair of NW the stats are:

pieces board size won lost worst-case/average DTM
N + W 8x8 93.7% 61.0% 45 / 28.4
N + W 10x8 92.9% 64.6% 56 / 36.2
N + W 12x8 92.4% 67.5% 69 / 44.2
2 x NW 8x8 99.9% 73.9% 11 / 6.3
2 x NW 10x8 99.9% 78.0% 13 / 7.6
2 x NW 12x8 99.9% 81.1% 16 / 9

Note that the winning percentage for N + W is not as high as commonly found in general wins. This is because a Wazir can easily be chased to doom by a King, when it happens to wake up cut off from the rest of its army. So there are a lot more positions where the strong side loses a piece despite the fact that he has the move (which otherwise are usually limited to forks in configurations where one of the pieces cannot move away while protecting the other, or attacked pieces trapped against an edge or in a corner).


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Nov 17, 2019 11:05 AM UTC:

The description of the Bishop conversion rule says this:

" for one of the bishops of the player, the first move made with this bishop must be of this special type. "

I take this sentence to mean that if one of the Bishops gets captured before it moves, the other cannot start with a normal move. This doesn't seem very sensible, though, so I am not sure whether my interpretation is correct.

Just to contribute my two cents: when you would keep one flag per Bishop to indicate whether it had been moved (or per square whether the original occupant is still there), which really should be considered a standard feature automatically kept track of in any chess variant, (considering how many variants endow pieces with virgin-only moves), the game state can be ancoded with only a single other flag per player, indicating whether a conversion has already taken place. The rule for a virgin Bishop is then merely that he cannot convert when a conversion was already done, and otherwise must convert when the other Bishops is not virgin (or, since the rule is only applied on a virgin Bishop, when not both Bishops are virgin). Note that the type of move (W or B) can be easily tested from the color of the square ((x ^ y) & 1 if you have separate x and y coordinates, nr*9 & 8 for 0-63 square numbering on an 8x8 board, nr & 1 on 0-71 square numbering on 9x8).


Metamachy. Large game with a variety of regular fairy pieces.[All Comments] [Add Comment or Rating]
📝H. G. Muller wrote on Sun, Nov 17, 2019 12:18 PM UTC:

Not clear from your description at http://history.chess.free.fr/metamachy.htm was:

  • Whether stalemate is a win, draw or loss.
  • What the "overpassed squares" are in case of the initial King move to the second ring. In particular whether moving like a Knight (from f1 to g3, say) passes over f2, g2, neither, either or both. And what it means for those squares to be "under attack" when they are occupied. (For D or A move it can be assumed that these are the W and F squares in the same direction, respectively.)
  • Whether the King can capture with its initial jumping moves.
  • Whether a Prince can capture en passant, in addition to being e.p.-capturable. Especially since, in the description of the Pawn, you present its ability to capture e.p. as a "consequence" of its ability to capture diagonally, rather than as an additional rule that could very well have been different. Since the Prince can also capture diagonally, does this have the same (but this time unmentioned) 'consequence'? And is this then a consequence just of being able to capture, (so that the Prince can also e.p.-capture orthogonally), or does the direction matter (and how about backward diagonal then)?

Note that my remark on the non-royal nature of the Prince is not meant as criticism on you piece naming, but just as a warning to the reader that the Metamachy type of Prince is not like the Shogi Prince (which also moves like King) in that it has to be captured / mated too in order to win the game and cannot expose itself to pseudo-legal attack. I would have said the same for Queen where it not that the Queen is an orthodox Chess piece that can move into check, and would automatically be assumed the same in other variants. Note that in your Metamachy description you use 'royal' in exactly the same meaning as I use it here, when you describe the Prince as "a non-royal King".


📝H. G. Muller wrote on Sun, Nov 17, 2019 03:12 PM UTC:

So just to be absolutely sure: when moving Kf1-f3, with a black Knight on g4 attacking f2 (but pinned on the black King on g5 by a white Rook on g3), this would be illegal if f2 was empty or occupied by a white piece, but legal if it was occupied by a black piece (assuming f1 and f3 not under black attack)?


Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Nov 17, 2019 04:50 PM UTC:

I still wanted to comment a bit on legality checking and game-end detection:

There is no need to assign illegal moves the same score as a legal losing game termination. You can assign it an even lower score. This reminds me of the fact that there are many Xiangqi engines that prefer losing by perpetual checking over being mated in 1. But the behavior can entirely be controlled by setting the score for the various kinds of game termination; minimax or alpha-beta doesn't require a binary game outcome. (Luckily, or the heuristic evaluation would not be any good.) If losing by illegal move gets a lower score than any form of losing by legal means, minimax should always avoid it. Unless the game rules themselves are incomplete, and allow you to manoeuvre by legal moves into positions where you have no legal moves, but which are not defined as terminal. (Most common case of this is failing to define stalemate as game end in games where the goal is King capture, under the false assumption that you will always have pseudo-legal moves.) Even in that case the illegal-move score will merely show up in the root as the most dishonorable form of losing.

It is useful to distinguish 'direct' termination conditions (detectable from the move or piece counts, such as King capture or baring) from 'indirect' ones (depending on the location of pieces and how they move). 'Check' is already a complex condition, defined in terms of pseudo-legal moves. 'Legal' (and thus illegal) are again defined in terms of check. And 'checkmate' is defined in terms of 'legal'. These definitions taken at face value often imply search, being of the form "there must not exist a move that ...". The definition of checkmate even involves a two-ply search, as it requires all pseudo-legal moves to be searched for legality, which again requires all replies to be examined for King capture.

Now it is very possible that there exist shortcuts for doing these searches, e.g. check detection through the super-piece method, or mate detection through estabishing that the checker(s) cannot (all) be captured, nothing can be interposed to block the check(s), and the King has nowhere to withdraw to. This is pretty well developed for orthodox Chess, but can get arbitrary complex in arbitrary variants. E.g. for determining whether a square is attacked when there are hoppers, bent sliders or locust capturers around (not to mention Coordinators, Immobilizers and Pincher Pawns). The super-piece method requires generation of retrograde captures, which must be handled by dedicated code, which can easily be inconsistent with the prograde move generator used in search. And for mate detection, what if there is a Lion around that can capture two checkers in one move? Or capture one, and block the other? What if there are bent sliders, that can both be blocked on a single square? What if the checkers involve a hopper, and its mount can move away, capturing or blocking another checker? How do I determine whether a locust capturer will attack me after the evasion? If I just stick to the official definition of these game concepts I only need prograde pseudo-legal-move generation, and there is not nearly as much that could go wrong.

You mentioned the 'beaten path', but you should keep in mind that this is the path used by developers of engines for orthodox Chess, and thus might not necessarily lead to where you want to be. No matter how much smartness you built into your engine for more efficient detection of the game-end conditions, it will never hurt to be prepared for game rules where these shortcuts fail, and some illegal moves escape your dedicated detection for those. So I would recommend to reserve a score for 'illegal move', (which, with checking rules, would be the negated score of capture or extinction of royal(s)), so that your engine will not crash if you inadvertantly run into a King capture. And in any node detect whether enough of the moves you thought to be legal are indeed legal, so that you would not have to declare game end after all (with an appropriate score different from the illegal-move score, like a draw or a distance-to-root-corrected losing or winning score). Which is pretty easy by starting bestScore at the illegal-move value, and see at the end if it stayed there. In cases where your dedicated game-end detection fails, your would then have a safety net in the engine. As for the GUI, you could always subject all moves to a search to make sure they are legal, and make the depth of this search a parameter of the variant, which can then be increased for variants with unusually complex game-termination rules.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Nov 17, 2019 06:06 PM UTC:

That certainly makes more sense to me. One could still wonder about the case where the first-moved Bishop does not convert, but is captured before the second moves. The situation this gives rise to is not really any different from the one where it was captured before it moved. And you would need extra game state to distinguish the two.

I guess you need extra game state anyway, because a Bishop can move and return to his starting square without converting. The other Bishop must then convert, but from the board position you cannot see which of the two is the 'other' Bishop.

Possibly the cleanest solution to everything is to implement this by piece-type changing: start both Bishops as Dragon Horses. When a Dragon Horse moves, it 'promotes' to Bishop, and as a side effect, depending on how it moves, the other Dragon Horse (which must still be on its starting square in that case if not captured), promotes, either to Wazir or to Bishop. If a Wazir moves it always promotes to Bishop. All game state is then encoded in the board position.


Symmetric Chess. (Updated!) Variant with two Queens flanking the King and Bishops Conversion Rule. (9x8, Cells: 72) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Sun, Nov 17, 2019 06:35 PM UTC:

Treating the Bishop conversion rule as a piece-type change in the Interactive Diagram through a custom function WeirdPromotion() embedded as JavaScript in the HTML page:

  function WeirdPromotion(x1, y1, x2, y2, promo) {
    var piece = board[y1][x1]; // moved piece
    var type = piece & 511;    // strip off color and virginity bits
    if(type == 6) {            // convertable Bishop
      promo = piece - 3;       // demotes to Bishop
      var partner_x = 8 - x1;  // start location of other
      if((board[y1][partner_x] - piece & 2047) == 0) // contains same piece (igore backround color flags)
        board[y1][partner_x] = ((x1 ^ x2 ^ y1 ^ y2) & 1 ? piece - 3 : piece + 1); // demote partner to B or W
    } else if(typ == 7) promo = piece - 4; // converting Bishop always promotes to Bishop
    return promo;
  }
files=9 promoChoice=NBRQ graphicsDir=../graphics.dir/alfaerie/ whitePrefix=w blackPrefix=b graphicsType=gif squareSize=54 symmetry=none pawn::::a2,b2,c2,d2,e2,f2,g2,h2,i2,,a7,b7,c7,d7,e7,f7,g7,h7,i7 knight:N:::b1,h1,,b8,h8 bishop::::, rook::::a1,i1,,a8,i8 queen::::d1,f1,,d8,f8 Convertable Bishop:B:BW:promotedbishop:c1,g1,,c8,g8 Converting Bishop:B:W:wazir:, king::::e1,,e8

Chess Variant Inventors. Find out which inventors have the most games listed here.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Mon, Nov 18, 2019 09:05 AM UTC:

It is true that new variants that just slam a number of sliders, leapers, hoppers and their compounds on a rectangular board of some size are not very innovative. Even if some of the pieces they feature have never been tried before. In a sense it is like they are all the same 'meta-variant' that has a number of adjustable parameters, and by turning the knobs you can set them to values that are never tried in that combination before. As Pritchard said: "it takes only 10 sec to invent a new chess variant, and unfortunately some people do". This doesn't mean that they cannot be entertaining to play, of course. Or that they are all of the same quality. Some non-trivial work can still go in picking the initial setup, making sure all pieces can be easily developed (remove any 'awkwardness'), all pieces are protected against possible quick attacks, and such. The spectrum of piece powers is also an important factor in how attractive the game is.

Still even there you can sometimes express a novel idea. In my variant Team-Mate Chess I used a collection of not-so-special pieces that were selected to not have mating potential (against a bare King) on their own, but always must force checkmate in pairs (similar to Bishop + Knight in orthodox Chess).

BTW, it seems my productivity is overrated in the list above: it says I invented 13 variants, but it attributes Wa and Tenjiku Shogi to me, while these are just historic Japanese games for which I made a rule-description page. (I also made such pages for Chu, Dai, Dai Dai and Maka Dai Dai Shogi, Paco Shako and Metamachy, but these were (justly) not attributed to me.) It also counts my article on FairyGen as a game invention, while this is just a description of a piece of software for generating End-Game Tables involvng fairy pieces.


Home page of The Chess Variant Pages. Homepage of The Chess Variant Pages.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Mon, Nov 18, 2019 06:48 PM UTC:

Something is very wrong! I try to upload an updated betza.js file to the membergraphics/MSinteractive-diagrams. It says "file uploaded successfully". When I point my browser to the MSinteractive-diagrams directory, I see the betza.js file there with today's date. All as expected.

But when I then request the content of the betza.js file, it has not changed. It still gives me the old content, not the one I just uploaded. Flushing my browser's cache, or switching to another browser makes no difference, I keep getting the content of the file that according to its date does no longer exist.


Symmetric Chess. (Updated!) Variant with two Queens flanking the King and Bishops Conversion Rule. (9x8, Cells: 72) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Mon, Nov 18, 2019 07:20 PM UTC:

The Interactive Diagram basically is a table of piece images, where the table cells are made sensitive to mouse clicks, which then can bring about the desired manipulation of the images (e.g. move them to other cells) or background colors. Such a structure would not allow drawing of image elements that span multiple cells, such as the arrows in the video.

I guess that in theory it should be possible to break up the arrows in cell-sized 'puzzle pieces' of straight parts, corner parts, arrow heads etc., in all possible orientations, and synthesize cell-spanning arrows from those pieces. The Chess pieces are actually displayed as cell background image, and have transparent background themselves, through which a background color for the cell shows (which I then use for highlighting). So technically the cells are empty, and just show a background. Images of arrow segments could be put inside them, and the non-transparent parts would then cover the piece images in the background. But this would require the images of the arrow segments to exactly fit the cell (or the browser's display algorithm would just enlarge the cells to fit the image). So it would require a different set of arrow segments for each conceivable square size. And it is a bit hard anyway to make images fit exactly in table cells; most browsers want to take some margin between the image and the cell edges, especially at the botton. So the arrows might look more like dashed lines.

Of course there still would be the problem of how a user should indicate where he wants arrows. Or other types of highlights. All in all it would not be very easy.

The current diagram already records all moves you play to make them into a game history. And on a page with a diagram you can request presence of buttons to step through a thus recorded games. For the diagrams I post here I never included such buttons, because they just serve the purpose of illustrating the piece moves and initial position. But you can see them in operation at my turn-based server, which uses the Interactive Diagram as user interface..


Chess Variant Inventors. Find out which inventors have the most games listed here.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Tue, Nov 19, 2019 10:38 AM UTC:

When the Cannon was introduced it could be called ground-breaking, because it introduced an entirely new class of moves: obligatory hopping over other pieces. Such moves are not as elementary as leaps, because they depend on occupancy of other squares than the origin and destination of the move. But one could already say that of sliding moves, which require all passed-over squares to be empty; the hoppers just impose another, more general condition than emptiness on such squares. Xiangqi is also somewhat unique in that it confines certain pieces to certain zones of the board; this could be seen as a special case of endowing pieces with location-dependent moves (namely scrapping precisely those moves that would leave the zone, in each location), which is very un-chess-like.

You are correct in pointing out the large Shogi variants are mostly just run-of-the-mill Chess variants, except for perhaps a hand full of innovative pieces (Lion, Hook Mover, Fire Demon.) But they still have a very different and easily recognized 'flavor': pieces tend to move only along the principal (orthogonal or diagonal) rays, and oblique leaps are almost completely absent. (And those that are there are then usually an incidental consequence of some multi-move rule, such as Lion = double-move King.) I have a theory that this is a consequence of the different Pawn move: the FIDE Pawn, capturing diagonally, tends to form chains of Pawns protecting each other. Which are very hard to break down by frontal attack once the chains interlock. You then need oblique leaps badly to be able to undermine these structures by attacking their weak spots in the rear, which are usually unreachable by Queen-moves only. And it doesn't matter much how few pieces you have that can make the move required in the case at hand, as the Pawn chains are quasi-static structures, and won't go away. So you will have enough time to manoeuvre the required piece into position. Shogi has none of this, as Pawns can never protect each other there (and after the invention of drops they added a rule for keeping it that way!). So there is no great need for oblique moves, and to get a large-enough variety of pieces with Queen-moves only, they turned to pieces with very low symmetry.

Another distinctive trait of the Shogi flavor is that virtually all pieces can promote (usually only with modest gain in abilities), while in western variants promotion is reserved for Pawns, offering the possibility to turn the weakest piece into the strongest one. In principle these traits could be easily mixed, but in practice this is not often done. Scirocco is a good example of a chess variant that combines design characteristics of Shogi and western chess variants.

But since the invention of the Cannon and the Grasshopper, and the introduction of asymmetric pieces, putting such moves on a piece in some combination that was never used before can no longer be called 'innovative'. There must be millions of such combinations possible even on an 8x8 board, and I am pretty sure the combination of moving diagonally forward like a Cannon, leaping like a Camel, and moving backwards like a Xiangqi Elephant (just to name something crazy) has never been tried. So what? Unless there is a very good reason why this move would make the game it appears in better than any other, 'inventing' the piece is not more creative than writing down a random number of 60 digits of which you can be virtually certain no one in the Universe has ever used (or even thought of) it before.

Truly innovative pieces are for instance Mats Winther's bifurcators, which generalize the principle of a hopper in various ways (by not only allowing change of move/capture rights on encountering an obstacle in their path, but also of the move direction, and the exact location where this change occurs). Inventors also often resort to associating a move with side effects to create something new, usually locust capture at squares that in various different ways can depend on the move (e.g. Advancers, Withdrawers), but also displacement of pieces on such squares (Magnetic or Catapult pieces).

I do not consider games like Ultima or Aarima chess variants at all. Even Paco Shako is a dubious case. Replacement capture is one of the defining traits of chess variants, and while it is OK to have the occasional exception (such as e.p. capture), a game that does (almost) entirely away with it no longer feels like chess at all. You might as well call Checkers, Ataxx or Amazons a chess variant. Clobber is a somewhat dubious case. 'Chess variant' is not a synonym for 'board game'.


H. G. Muller wrote on Tue, Nov 19, 2019 07:58 PM UTC:

Borrowing merely a single piece from a game IMO is not enough to qualify as a variant of that game. Note that the idea that capture of a single designated piece (rather than total extinction) is not exclusive to Chess; Hnefatafl and Stratego are also won in this way. The royal piece must not be too mobile, or the game could virtually never be won, and limiting the motion to just the adjacent squares is one of the most obvious things to do that.

There will of course always be boundary cases, but for my taste Ultima is not even that. It really doesn't have anything in common with Chess that it also doesn't have in common with several other games. Queen moves are also pretty elementary, and common in other games (e.g. Amazons). Replacement capture also occurs in Clobber and Stratego.


H. G. Muller wrote on Tue, Nov 19, 2019 09:11 PM UTC:

Stratego is not a game of perfect information, which makes it very non-chess-like. It is somewhat similar to Banqi ("Chinese Dark Chess") in this respect. Dark Chess or Kriegspiel I also doubt, but these at least are absolutely normal Chess in all other respects, so that they would count according to the criterion that a single fatal flaw can be forgiven if it is completely orthodox in all other respects. Stratego, however, has different board size, different number of pieces, the replacement capture is subject to ranking of the type and can backfire, the royal piece does not move... Even when all pieces would be in plain view it would be nothing like orthodox Chess or one of the other major regional chess variants.

As to Clobber: I don't really believe that this should count as a chess variant, but if you think about it, it gets close. Several games normally considered chess variants lack one of the defining characteristics of chess. E.g. Suicide Chess does not have a royal piece, Marseillais Chess moves two pieces per turn. Clobber does not have many piece types, but precisely because it has only one you could consider that (extinction) royalty, and then it satisfies all other criteria. In Horde (Lord Dunsahy's Game) one of the players also only has Pawns, and in Maharadja and the Sepoys one player only has a single (royal) Maharadja.

I did not want to suggest Amazons could be a chess variant; on the contrary, I gave it as an example of a game that is clearly not a CV, but yet has a piece that moves like a Queen. To show that the fact that in Ultima most pieces move like a Queen doesn't make it a chess variant anymore than that it makes it an Amazons variant.


H. G. Muller wrote on Tue, Nov 19, 2019 10:05 PM UTC:

Last year at the ICGA Computer Games Conference 'Computer Curling' was actually one of the big things. The attraction was that it was a game with a continuous rather than a discrete game state, which makes exhaustive listing of all possible moves impossible. I suppose that to make it difficult there must be some randomness added to the move that you specify, as with infinite precision there would be no difference between an easy and a difficult turn.


Symmetric Chess. (Updated!) Variant with two Queens flanking the King and Bishops Conversion Rule. (9x8, Cells: 72) [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Thu, Nov 21, 2019 05:27 PM UTC:

In the Interactive Diagram images for the various piece types can be arbitrarily chosen. So there is nothing against representing the Dragon Horse and Wazir by the same image as the Bishop, so that the game state that determines how a piece depicted as a Bishop moves will become entirely hidden. But for the demo I wanted to make it clear what is actually going on.

For computer analysis the the conversion rule is probably not relevant for most of the game: the Bishops will both develop pretty quickly, and after that you are basically dealing with normal Chess on a 9x8 board. Most existing configurable multi-variant engines would allow you to specify an initial Wazir move on the Bishop, which would then enable you to set up the positions you want to analyze from the opening positions.


H. G. Muller wrote on Fri, Nov 22, 2019 07:37 AM UTC:

Regarding WinBoard 4.8.0, I don't know how to drop the Hawk and the Elephant playing Seirawan Chess against the Fairy-Chess engine.  After moving a piece, no menu appears asking you to choose which piece you want to drop. Could you, please, help me?

To gate in a piece you first select that piece in the holdings (by clicking it, so that the border highlight around it goes on), and then move the piece from the location on the back rank where you want to gate it in the normal way (click-click or drag-drop).


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
H. G. Muller wrote on Fri, Nov 22, 2019 12:31 PM UTC:

That it takes so much effort even by seasoned chess programmers to create a rule-checking preset for a variant as simple as Symmetric Chess firmly puts us in the category of 'backward websites'. We really should have some kind of wizard for this, where people that cannot program at all would have no trouble to create such a preset. E.g. something like the Design Wizard for Interactive Diagrams I put in the article on those. Where you just have to take a minute or so to specify board dimensions and size of promotion zone, pick a preferred graphics theme, tick a number of pieces in a list of standard types (or, very rarely, pick an image and specify a non-standard move for it by hand), drag the pieces to their initial locations on an empty (a specified symmetry taking care of you having to do that for only one member of each type), and you are done.

If the wizard produces the usual game code, (just as that for the Interactive Diagrams produces the HTML), it will remain possible to take care of any features not suported through the wizard by editing the automatically generated game code later. But this should be needed only very rarely.

To catch more variants through the wizard it could allow a general input screen for specifying castling rules: the location of the castling partner, where it and the King will end up after castling, which squares must be empty and which squares must not be attacked. (And allow that to be repeated as many times as possible.)


100 comments displayed

EarliestEarlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.