Ratings & Comments
Since a toroidal board does not count as a 4D board, I removed the 4D category from this page. A 4D board is one where each coordinate is designated by 4 values, each one representing a different dimension. But each coordinate in this game is designated only by its rank and file.
I have updated the database and relevant scripts to better accommodate 4D games by including a new field for the 4th dimension called BoardRealms. However, I'm not sure what value to give it for this game or what value to change BoardLevels to now that it doesn't have to do all the work for both the 3rd and 4th dimensions.
The Diagram I posted only does active burning. Sorry I was unclear about that.
Adam implemented the burning by embedding a custom script for WeirdPromotion. Where he first tests whether a piece lands next to a burner (and in that case returns 251 as promotion code to make it a kamikaze move), and otherwise returns 512 when the moved piece is a burner.
I only used the captureMatrix parameter in my Diagram. There is no formalized way yet to specify passive burning by Diagram parameters; you would have to supply a JavaScript extension.
The Queen burns like a Fire Demon here
Did you mean including passive burning as well? Only active burning is working for me (though Adam's Tenjiku diagram seems to implement passive burning too so clearly it's implementable as you described)
It works now.
satellite=desert
files=8
ranks=8
promoZone=1
promoChoice=QRBN
graphicsDir=/graphics.dir/alfaeriePNG/
squareSize=50
graphicsType=png
lightShade=#ffff80
darkShade=#bf998c
rimColor=#077208
coordColor=#ffff40
borders=0
firstRank=1
useMarkers=1
newClick=1
atomicCapture=0
pawn::::a2-h2
knight:N:::b1,g1
bishop::::c1,f1
rook::::a1,h1
queen::::d1
king::::e1
|
|
The Queen burns like a Fire Demon here.
Strange. I had not tried it for WeirdPromotion, but I did now, and it works for me. The version on the CVP website has exactly the same size as the one I am using locally.
[Edit] Try refresshing the browser cache. Before I did that I had the same behaviour as you describe in the Diagram above.
Sounds awesome. Only problem is that returning 512 for the promomtion it doesn't work like it should. Instead of burning adjacent pieces it simply burns the moving piece as if you returned 251 for the promotion.
Respect the power of three Wazirs - they can checkmate a lone King in 47 moves.
True. But not very relevant. Three Ferzes do it faster when not all on the same color. (Addmitted, this rules out 1/4 of the cases.) But in Shatranj stalemate is a win, and even two Ferzes or Wazirs can force that on a bare King. And the worst case for the Ferzes is two moves faster than for the Wazirs, even when they are on the same color.
Unfortunatey a general t modifier is a bit hard to implement. Which is a pity, as with the unload modifier it would make it possible to describe magnetic pieces and catapult pieces.
So for now I added capture of pieces adjacent to the destination as a standard feature, controllable through the capture matrix and from WeirdPromotion(), as internally it uses the promotion element of the move array to trigger it. An @ in the captureMatrix orders promotion to piece number 512 for that particular combination of attacker and victim (wher the latter can also be an empty square). Now this is an invalid piece number, and used as a kludge to indicate 'burning'. How exactly this burning works depends on a new parameter atomicCapture=N. For N=0 it does Tenjiku-type burning: only enemies get burned, and the capturer survives. For larger N is gives you explosion like in Atomic Chess: all adjacent pieces are destroyed, friend and foe alike, but the first N piece types from the table survive, while the capturer always selfdestructs.
Now this works the same when you return 512 from WeirdPromotion(). But you have additional control there. By returning 512+C (0 < C < 256) you also trigger the burning. But in that case it burns only the squares selected through the bits of C, where 1 = N, 2 = NE, 4 = E, 8 = SE, etc. So WeirdPromotion() could do additional testing on the board to decide whether an adjacent piece should be burned or not. This could for instance be used to implement Ultima Pincher Pawns, by checking whether there is a friendly piece behind the adjacent one.
All this only works with newClick=1, which unfortunately means that the move diagrams (using the old highlight code) would not show the burning. It is not easy to cure that, as the move generator doesn't know about it (as far as that it is just a promotion), and no clicks on the burn victims are required . (During hovering over the move diagram the highlighting is as if the hovered square had received the second click, and it shows where the third can go.)
BTW, I now added a link to the Extended Betza article.
Now I see what you mean. I don't think it is something I have done!
To me they look normal!
Since people keep wanting to use tags for information that is already stored in the database, I have modified the footer script to include categories and board dimensions just above the tags section.
Respect the power of three Wazirs - they can checkmate a lone King in 47 moves. Also, I think the position in the diagram can be reached, leaving the Black Alfil limited to two squares: (e2) and (g4). Surely White can eventually force a trade of one Wazir for the Alfil. Question: would replacing the Alfil with an Alibaba (A+D) save the draw for Black?
What would be an appropriate tag for hexagonal boards?
Back in [2018-03-04] Kevin Pacey mentioned "the pleasing possibilities of smothered ... mates". My 12x12 variant Rose Chess XII has 96 empty squares, with ten Pawns each on the 4th and 9th ranks. But Black can deliver a smothering mate with a circular Nightrider on the second move of the game. A position so amusing that it earned a diagram at the top of the rules page.
Speaking of XBetza (or rather, IBetza), you should really consider adding a link to your page on Extended Betza Notation to this page. Even if it is not strictly identical to the one used in the interactive diagrams it would be a very helpful edition. I did check for a link to that page before writing this, and I couldn't find one.
The new definition for t could be quite interesting. It also helps that kc covers the old function of t (excluding capture of royals).
Similar to Courier-Spiel, the game adds modern Bishops and improves the Elephants (called Couriers here). Switching the Bishops and Couriers in the initial setup will improve this game. While the b-file and h-file Pawns are now undefended, they are also no longer threatened by hostile Bishops. Jumping the Courier c1-c3 will help to shield the Pawn on (b2).
Some time before 1992, Paul V. Byway included the Ferz in Modern Courier Chess, placing RNCBFQKFBCNR on a 12x8 board. Ken Franklin also placed Alibabas in Leap Chess on 44 squares.
The diagrams on this and the Apothecary Chess-Classic page are missing white's brouhaha squares, and so are both corresponding game courier presets.
I'm not quite sure whether I want to rate this Good or Excellent so I'll go with the higher rating. This is a great way to enhance weaker pieces without making them too strong. An interesting variation of this idea might be to have all the pieces except the king and queen start without their non-capturing king moves and gain them by promoting on the last two ranks.
True. But I have always had the feeling that XBetza notation should be the vehicle to specify that, not the promotion. What I am missing in XBetza is the possibility to specify a side effect that is mandatory when possible, but not blocking the move when impossible.
How about this: the modifier t is a leg separator like a, except that the actual piece move terminates at that point, and the remaining legs only describe the path of its 'influence'. If this is not a unique continuation, all possible realizations will be combined with the move. So where yacabQ would describe a Queen that (by virtue of the y) does a single King-like burn of an enemy, ytacQ would burn every enemy adjacent to the square it lands on, and can even land there if there is no adjacent enemy at all. An Ultima Pincher Pawn would be ytacfapR, where the captureMatrix would be used to forbid the piece (and its influence) to hop an enemy. Unlike actual moves, the last leg of the influence can be a 'hop-on' leg.
If you are prepared to use JavaScript there are many ways you could interfere with the standard operation of the Diagram. There is for instance a routine ScoreMove(move, predecessor), to prep the 'raw' moves coming out of the move generator by determining the piece types of the capture victims, storing those in the array describing the move, and calculating the effect these captures (and promotions) would have on the score. ('predecessor' is the move preceding it, only used to enforce anti-trading rules). Interfering there to add a few burn victims is not very difficult; you just replace the function by a wrapper for it, like:
var OriginalScoreMove = ScoreMove; // remember the standard routine var burnX = [ 1, 1, 1, 0, -1, -1, -1, 0 ]; var burnY = [ 1, 0, -1, -1, -1, 0, 1, 1 ]; function ScoreMove(m, last) { // and redefine it var x = m[0], y = m[1]; // origin var piece = board[y][x]; // moving piece if(IsBurner(piece)) { var n = 4; // 0-3 are the coordinates of origin and destination for(var k=0; k<8; k++) { var xb = x + burnX[k], yb = y + burnY[k]; // coordinates of neighbor square if(IsEnemy(xb, yb)) { // this is assumed to return 0 when (x, y) is off board m[n++] = xb; m[n++] = yb; // add a locust victim m[-2]++; // this counts the number of squares in the move } } } return OriginalScoreMove(m, last); // call the standard routine on the modified move }
I now also made promotion to empty square ('kamikaze capture') possible; it can be specified in the captureMatrix by a 0 (zero), and requested from the WeirdPromotion() custom script by returning 251 for the promotion piece. This means that it would now also be possible to implement the passive burning ability of a Tenjiku Shogi Fire Demon, by detecting in WeirdPromotion() whether a move lands next to an enemy Demon, and return 251 in that case.
Now all that is needed to successfully implement a interactive diagram for Tenjiku Shogi is to give WeirdPromotion the ability to affect other squares.
Edit: I tested this in an interactive diagram of Tenjiku Shogi, and the piece does get removed, but the diagram still thinks there is a piece there.
The ShowMoves problem is now fixed: I reverted to including the loop directives in the compiled move descriptors even when newClick=1, and made the code that performs the click swapping for shooters resistant to their presence. As far as I could see this appears to work.
I now also made promotion to empty square ('kamikaze capture') possible; it can be specified in the captureMatrix by a 0 (zero), and requested from the WeirdPromotion() custom script by returning 251 for the promotion piece. This means that it would now also be possible to implement the passive burning ability of a Tenjiku Shogi Fire Demon, by detecting in WeirdPromotion() whether a move lands next to an enemy Demon, and return 251 in that case.
25 comments displayed
Permalink to the exact comments currently displayed.
Playing about with this diagram I did seem to have run into some strange bugs:
The two bugs together also mean that a piece subject to the second bug can never be passively burned within the promotion zone