Comments by HGMuller
The moves from the black Pawn to the empty squares should not be back-and-forth arrows. I consider it a bit objectionable that the forward-right slide is indicated in the presence of a black Pawn.
I must admit that I don't like this style of move diagram very much anyway. Indicating a sliding move by an arrow as well as a marker symbol in the final square is confusing. I suppose the triangles are meant to indicate that there could be a locust victim there, but the diagonal arrows now have different symbols at their point and tail, and it is not intuitively clear which one applies to them. If you want to indicate slides by an arrow, I would prefer them to be indicated by only that arrow, so that one can be sure all other symbols on or near it refer to other moves. E.g. use colors for indicating move/capture/both, and the shape of the symbol (dot, leap-arrow) for indicating motion type. It might be better to equip the sliding arrow with arrow heads on every square that is a valid destination, so you can also indicate riding.
I would indicate squares where there could be locust victims or mounts by the dashed outline of a Pawn behind all the move markers. And then use a dashed arrow going over those to possible final destinations. (Dashed, because it then doesn't entirely cover possible slides that follow the same path if the square is empty.) The color of the dashed Pawn outline could indicate whether this is a mount or a locust victim. I still think it would be clearer to just indicate the location of possible 'move activation' in a main diagram by a dashed outline piece, and then show the move when something would be there in a separate diagram (where the piece would be solidly drawn, posisbly half white and half black to indicate both colors would do).
And why do the arrows end after 3 steps? This suggests a range limitation of 3 to me.
I would do it more like this:
The lower left would be for the primary move diagram, the upper right for the additional explanation of the rifle and hit & run capture. I made the arrows yellow rather than white for better contrast with white pieces. Capture-only moves would be colored red, move-only green. For a hopper there would be no cross on the Pawn, and it would be half white, half black.
Note that you can paste your Diagram in the PTA, and press the Piece Table button to get the HTML for a piece table including images and textual move descriptions, like the one I put in my 'Demotion' submission. The table there was entirely generated in this way, as all pieces were sliders, leapers or compounds of those. For more complex pieces the generated descriptions might not be perfect, and need some hand editing. But usually there aren't many of those, and what it generates for them might still be partly usable.
(Flush the browser cache first, though.)
I tried it for your variant, and it produced thefollowing:
hussar | makes a lame (1,2) leap via the (0,1) square, or steps one square straight backward or sideways | |
lancer | makes a lame (1,2) leap via the (0,1) square, or steps one square diagonally backward | |
equesrex | steps one square in all 8 directions, or makes a knight's jump | |
camel-queen | makes a (3,1) leap, or slides in all 8 directions | |
striped-gryphon | steps one square diagonally and from there can continue to slide orthogonally outward, or makes a (3,2) leap | |
cobra-manticore | makes a knight's jump, slides up to 2 squares orthogonally, or jumps to the 2nd square orthogonally if that is empty and from there must continue to slide diagonally outward | |
paladin | slides diagonally, or makes a knight's jump up to 2 times in the same direction | |
zebra-nightrider | repeatedly makes a knight's jump in the same direction, or makes a (3,2) leap | |
marshall | slides orthogonally, or makes a knight's jump up to 2 times in the same direction | |
assasin | makes a (3,1) leap, or makes a (4,3) leap | |
ninja | jumps to the 3rd or 4th square diagonally, or makes a (4,1) leap | |
lightcannon | slides orthogonally to an empty square, or jumps over the nearest piece orthogonally for capturing only | |
heavycannon | jumps over the nearest piece orthogonally, or jumps over the nearest piece straight ahead for capturing only | |
mammoth | steps one square in all 8 directions, jumps to the 2nd square diagonally, jumps to the 2nd square orthogonally, jumps to the 3rd square orthogonally to an empty square, or jumps to the 3rd square diagonally to an empty square |
The Heavy Cannon obviously confuses it, while it could have been smarter contracting the descriptions of the Mammoth (But the latter would have sounded better if the XBetza had described it as KSmT.) And it sometimes ignores that the piece is not fully symmetric.
It doesn't say whether the King is exempted from morphing, or whether a resulting piece would stay royal if it does.
Note that a piece that moves as the piece in the FIDE setup that started on the file it is currently on is known as a Querquisite, and that the pieces used here are very much related to this. So it might be good to refer to this, for better historical context.
This is basically just a sub-variant of Avatar Chess on a 9x9 board, with different, more regular assignment of the morph targets to the squares. The only 'novelty' is that there are now also some squares where pieces don't morph.
And what is the point of including three basically identical diagrams? I would suggest reducing this to a single one.
This is the most original and inventive chess variant I ever encountered, and I like that very much. I agree that the current submission is not suitable as a rules page, though. We do have pages for external links, and it can be used as one of those. But it would be a pity if there is no full rule description of Turnover on this site.
That accessing the rules link requires a login is of course a deal breaker...
Also here having three diagrams that show the initial setup seems redundant.
The move diagrams seem to be screenshots from an Interactive Diagram, but they use color coding for the moves. This mode of highlighting turned out to be unsatisfactory on monochrome displays, which was the reason that a mode was added to the I.D. that highlights with symbols recognizable by their shape, in addition to color. The I.D. would automatically switch to that mode when it detects a gray-scale display, and can do that because it is interactive. For static images I would recommend using the shaped marker symbols in the screenshots, forcing that mode of highlighting by including the line useMarkers=1 in the Diagram definition.
The remark in red on the Dragon Horse seems superfluous, and even a bit patronizing; the reader can expected to be smart enough to notice such hings himself. You don't write a similar remark for tha Cardinal, where it would apply just as well. But it is normal that pieces can access the entire board; alsmost all pieces do that. If anything would deserve a special note, it would be on pieces that are color bound.
The Pawn can move and capture one or two squares forward.
Also here it doesn't specify how a King would morph.
The comments I made to Snappy Chess also apply here. In fact the games are so similar that they could be considered sub-variants of each other.
It might be a bit optimistic to assume that the average reader will know how a Chinese Horse or a Janggi Cannon moves, though.
I am interested in the idea and perhaps a little less in the formulation of the description.
But what people will see here is the description, and not your ideas. It is the task of editors to make sure the presentation is concise and clear.
Your description is plain wrong: pieces are not bound to columns at all; each piece can reach the entire board. It is just that they move differently in different files (which is the usual English Chess jargon for what you call 'columns'). And even that is not strictly true, as there are Pawn moves in all files, and on 1st and 9th rank every type can be anywhere.
It is also not clear whether a piece morphed into a Pawn on 2nd rank has a double move. The Interactive Diagram doesn't grant one.
The description is also ambiguous as to whether castling is allowed; 'takes place' seems wrong wording for being allowed anyway. Whether it will take place depends on the players.
The Motif set has a KnightQuueen piece, which is probably the Amazon you are referring to. I very much doubt that an AI would be able to design piece images in 'Motif style'.
Is it possible to have promotions triggered by capturing that only occur in a specific part of the board?
To get back to this question: initially I thought this is such a specialized case that it should be left to a custom-scripted promotion routine. But now I have an idea for how this could be achieved in a general way. In the mean time I encountered a case where promotion instructions according to the captureMatrix collided with those according to the morph board. (In particular: a Pawn that would demote when capturing, but promote normally when reaching the last rank, even with a capture.) I let the morph prevail in that case.
If the morph could contain a symbol for forced non-promotion (which, unlike an indicated no-op, would then suppress any promotion specified in the captureMatrix), you could simply use that to suppress the capture-driven promotion on an arbitrary part of the board. Perhaps this could even be done by specifying "promotion to itself" in the morph. (Currently this would be rejected, to make sure you can have two types with the same piece ID that morph into each other, in order to make the morphing entirely transparent, treated as a single unaltering piece which just changes its move.)
I usually design pieces with Inkscape on Linux. This allows you to download a raster-format picture (e.g. the photograph of an elephant), and then draw a vector image on top of it, by clicking points on the outline to define a curve. Then I use the 'edit curve' fuction to bend the line segments in shape so that they follow the outline, adjust their width and color. In the end I delete the raster image, and set a fill color for the curves, and save as .svg file.
The link now points to an accessible website. But this website unfortunately contains a very incomplete rule description. The most essential part seems to be missing (namely that a move consists of moving only the outer-most ring of a combination).
(Unfinished) test Diagram:
Ughh! Trying to implement the turnover transformation and splitting rules through a custom xxxTinker script revealed a bug in the parsing of the captureMatrix. Instead of ignoring promotion to its own type, it ignored promotion to the type just before it in the table.
After fixing this, I think I got the normal moving right. Promotion is still to be done.
Would it be all right/adequate if I just live with the preset the way it is (at least for now) and go ahead and make my Advancer move vs. Joe?
Of course. There never was anything wrong with the rule enforcing, in the sense that all legal moves would be accepted, and all illegal moves would be rejected. The problem was only with the highlighting, which, in the accelerated mode, might highlight moves that would not resolve an existing 'locust check'. This made it easier to accidentally enter such an illegal move (which then would be rejected by the legality enforcing).
But that highlighting problem was already fixed on May 13.
I don't even understand how Applet generated presets evaluate legal moves.
Conceptually this is not very difficult. In principle legality of each psudo-legal move M can be tested by performing the move, and then trying all pseudo-legal moves of the opponent to see if any of those captures the King. To speed this up it only tries the opponent moves that were already attacking the King before move M was made, and all moves that were affected by M because they encounter a square the occupancy of which was changed by M in their path. Most moves only affect two squares, the origin and the destination, and only a small fraction of all moves would have found one of these two squares in their path.
Moves that were not attacking the King before M, and did not encounter a square mutated by M, will not attack the King the King after M.
I think the Interactive Diagram now completely implements the rules as I understood those. To make this easy to achieve with the custom Tinker script, I had to make a few modifications in the standard betzaNew.js script powering Interactive Diagrams. In particular how it handles exemption of moves from the effects of morph and captureMatrix by dressing those with an apostrophe in the XBetza move descriptor, and how it resolves conflicting instructions specified in these two:
For one, the apostrophe now does not prevent a custom Tinker script for being applied to the move. If it is desirable that such a script only affects part of the moves, it can always be made smart enough to make that destinction itself. But it was inconvenient that moves that should excluded from the specified morphing/banning could then not be adapted in other ways (such as adding an unload on their origin square).
And I think I provided a more natural way to resolve conflicts between morph and captureMatrix: if the captureMatrix specifies a type change, it is executed first (even if the morph for the moved piece would have specified a different type change). But then morphing is applied according to the morph for that resulting type, rather than the original piece. This made it possible to implement the Turnover promotion rules by having Pawn and King morph into Queen on the last rank; even when a piece that was originally (say) a Knight 'unstacks' to split into a (moving) Pawn and a (remaining) Bishop, it is the arival of the Pawn (or the transformation that it brings about on a turnover victim) that triggers the promotion.
This behavior can be controlled with maxPromote, as it only applies to pieces that are not specified as promoting (the promotion purely controlled by morph, not by promoZone). For promoting pieces a morph specified for the moving piece would cause the captureMatrix to be ignored. (And one can always suppress promotion by zone for those pieces by setting promoZone=0.)
Anyway, your code employs huge tables that somehow define how a piece moves, and I don't understand how these work.
The format used to encode (possibly complex) moves in the table is to split those into a sequence of rides ('legs'). Each ride is characterised by four parameters: maximum number of steps, x-step, y-step, and an integer where each bit corresponds to a 'power' that the leg has. (Like can-capture-destination, can-move-to-destination, can-e.p.-capture-to-destination, base steps cannot jump, base steps must jump, can-hop-over-destination, initial-move-only, must have as many steps as previous ride, etc.) Each move is encoded as the number of legs N, followed by N leg descriptions of four numbers each. The moves of a piece are tabulated all behind the other, the end indicated by a dummy move of zero legs (i.e. just a 0).
For example, an orthodox Rook would be encoded as four simple slides in different directions:
1 99 0 1 3 1 99 1 0 3 1 99 0 -1 3 1 99 -1 0 3 0
Where the 3 stands for can-move (1) and can-capture (2). The 99 is used to indicate an unlimited range. For leapers this would be 1. The moves of all pieces are all stored one after the other in the same array 'legdefs'; I use functions with the name of the piece label that return the index in legdefs where the moves for that piece starts.
A bent rider like Griffon would have moves consisting of two legs, like
1 1 1 1 3 2 1 1 1 1 99 1 0 3 2 1 1 1 1 99 0 1 3 ...
(showing one simple F move, and two bent slides). The first leg of the latter is a (1,1) leap to an empty square, the second leg an unlimited-range slide with (1,0) or (0,1) step that can move or capture.
There is a GAME-code routine NextLeg which interprets the table in order to lay out all tabulated moves for a given piece on the board, and for each move it can make to a valid final destination it then calls a routine to do something with that move. (Like comparing it to the input move, or add it to the array of legal moves for highlighting.)
There is a slight complexity: normally you only have to worry about (pseudo-)legality for the last move in the game, and do that in Post-Game code. The earlier moves were already vetted in the turn they were entered. So you can take them at face value, performing them 'no questions asked'. This does not work for moves with implied side effects (i.e. board mutations not indicated in the move notation), such as e.p. capture. Such moves would have to be generated for every move in the game, and if the explicit part matches the stored move, the generated side effect would have to be performed as well.
To this end moves with implied side effects are always stored behind all others, and the routine that returns the index of the first move to be tried for a piece of that name has a parameter that indicates whether you want to try all its moves, or only those with implied side effects. By convention pieces without such special moves point to an empty movelist (a single 0), stored at the start of legdefs.
It seems I misunderstood the rules then, which is no wonder considering the awfully deficient description at the given link. I assumed that 'turnover' meant that you would combine the moving ring with what was present in the destination square, no matter what color the latter originally had. In that case Ke8xd8 would be legal. (Even though a bit pointless...)
Apparently 'turnover' only applies to enemy victims? Is it not possible to recombine your own pieces? Or is this included in what is described as 'move'?
I don't have Zillions.
It was announced in a longer Comment to which this is a reply.
I don't get it. The rule description at the link says the rules for moving a Castle (=King) are:
Castling:
The whole Castle can move one square for any side, except forward.
The WHOLE Castle can take the opponent's Castles, Fortresses, Towers and Walls one square for any side, except forward.
Its Wall can turnover Forts and Citadels one square for any side.
The third point seems to state that you can split off the Wall (= Pawn), leaving a Citadel (= Queen) behind, and merge the Wall with the existing Citadel on d8 to create a Castle there. The whole Castle should only move (leaving nothing behind) when moving the Wall would bring a bare Wall in the destination (i.e. when the destination was empty, or contained an enemy that should be captured rather than turned over). Forward moves are an exception to that latter rule; and are not allowed to capture in the first place.
I agree that point 3 you referred is expressed somehow unclear, leaving the impression that its wall can turnover in every direction including sideways, but that would contradict point 0.
Well, it is obvious that it contradicts the behavior of that applet. I don't see any contradiction with the rule you quote, though; both sentences indicate that turnover is possible if you make one step forward. (And the only possible turnover targets are Fort and Citadel.) One would expect the castling description to apply only to the moves indicated in the diagram as 'castle' (i.e. white dots), which is indeed in every direction but forward. The first two points in the castling rules indeed make that exception. The third point does not have to make it, because it addresses turnover options, and the rule for forward moves already specified that these also exist for forward moves.
Note that the applet you refer to does allow friendly turnover for diagonally forward moves (but not to sideway moves). If I play b2-b3 (leaving a Citadel on b2), the next move I can play a1-b2 to turnover that Citadel. After c1-c2, c1-b1, c1-b1 it does not allow a1-cb1, though. So the applet doesn't treat all the castling squares the same way, which casts a lot of doubt on its correctness.
From a Comment by the inventor in 2020 I am starting to suspect that the castling moves are only allowed when in check. It is not clear what in check means in this variant, as it seems to have multiple extinction royals, and it is not illegal to leave those under attack. My best guess is that it applies to your only remaining Castle facing destruction. This is still a bit ambiguous, as without the castling move you could be forced to disassemble your last Castle, even if there is no external threat. The castling rule makes positions with a bare Castle (or Castle plus blocked Walls) viable, by allowing the Castle to stay a Castle when you move it (under zugzwang or to evade capture).
It is clear that the linked description is grossly inadequate...
[Edit] A demo game on facebook suggest that any Castle that could be captured on the next move is allowed to make a 'castling' move to evade the attack. But zugzwang forcing self-destruction does not enable castling, but results in the game ending as a draw there.
It appears the rules of this variant are still fluid. The start position of the applet is also different from the one shown in the article here.
So how do you explain a diagonally forward move of a Castle can turnover, but neither move the entire Castle nor the Wall to an empty square? None of the written rules remotely suggest such a thing, and neither does the diagram. It beats me how anyone could interpret the currently given rules this way; the interpretation of 'forward' as "straight or diagonally forward" does not hold either. There must have been a different rule description in the past.
I have no contact with the author, but he updated the article here 3 days ago.
I think the rules changed at some point by adding this castling business, and that the applets play by the old rules, where a castle always decomposes. Apparently it was perceived as a flaw that castles could not be salvaged from check, or forced to decompose by zugzwang, and castling and stalemate were introduced as fixes.
I think this was a poor choice; the castling destroys the conceptual simplicity and elegance of this variant. If integral motion of a royal piece was desired, the logical solution would have been to make the king one of the atomic pieces. E.g. if de rings are designated L(arge), M and S, we could have L=K, M=B, S=R, LM=Q, MS=N, LMS=P. If you start with 8 LMS pieces, the victory condition could be that having no kings at the end of your turn loses. Your first move will create a K (leaving an N behind). A K then cannot decompose, and can capture a Q or P. It could turnover a B or N, but perhaps the rule should be that K cannot turnover, and only capture orthogonally.
25 comments displayed
Permalink to the exact comments currently displayed.
But they indicate rifle captures instead.