Comments by ChessShogi
GC presets are working again.
The deletion script for submissions is still not working properly though.
The GC preset is no longer up to date. I still need to work out the kinks of the contagious promotions.
I have fixed the GC preset's contagious promotions and clarified the rules for contagious promotions as well.
I cannot delete a submission that I want to delete, even though said submission is empty. I temporarily revived it (the old Mitsugumi Shogi page) to get something for the new page and then tried to delete the former, but the delete script doesn't work.
Edit: Now it is impossible to update a submission to an empty page, which is a requirement for deletion.
I've been working on reviving this game (and Mitsugumi Shogi), and pretty much everything is done, but I am not sure how I should handle trading of the Fire Demons in these games to keep them exciting. Such rules don't really matter in Tenjiku Shogi, as the Tenjiku Fire Demon burns every adjacent enemy piece every time it moves, and even on the opponent's turn, so you can easily get several pieces for the price of one. In Suzumu Shogi (and Mitsugumi Shogi), the Fire Demon moves like a Free Boar with an additional area move and can optionally shoot one adjacent piece, either without moving or after it stops, and has no passive burn (XBetza: shQshympacabQ(a)2KmcabK(a)2mpacabK). In other words, the Suzumu Fire Demon's burning move is much weaker, potentially requiring rules to conserve it until the very end of the game.
I thought about implementing Chu Shogi-style rules for this, but they don't really work for a piece like the Suzumu Fire Demon. I then thought about implementing Maka Dai Dai Shogi's contagious promotion rules as well, but I worried that it would make the Fire Demons too survivable.
Right now I have a more limited contagious promotion rule in place which only affects direct captures of a Fire Demon or Heavenly Tetrarch from pieces that are not (potential) royals. I also gave the Suzumu Fire Demon's burning ability to the Heavenly Tetrarch. The former ensures that at least one Demon/Tetrarch survives, and the latter makes the Chariot Soldier more dangerous to make up for the weakened burning move. I think these changes work quite well, but I still want an outside opinion on this to make sure I am dealing with this issue the right way.
Quick question: Does the diagram AI take into consideration the highlight restrictions from the BadZone function? I was thinking about reviving Suzumu Shogi and adding a rule forbidding pieces that burn from burning each other, and I have successfully defined a BadZone function to enforce it in the move highlights, but I worry that it won't be take into consideration by the AI. I tested it on my own interactive diagram, and it seems to work.
What should I use if I want to test for past and potential captures and have captures of certain pieces always return false in a function definition?
I know how to do it for general captures.
cond empty #0 capture (not empty #1)
Perhaps this?
cond empty #0 (not match old FD +WB +CS) (not match space #1 FD +WB +CS)
I think there's a problem with the current preset. The knights aren't able to move sideways or backwards.
Thanks for catching that. I will fix that right away.
I've decided that the contagious promotions made the Fire Demons too survivable, and instead went with a rule that prevents Fire Demons and Heavenly Tetrarches from burning each other. That way trades can still happen, but it's not super easy to do so. And because of the high number of pieces that promote to these two juggernauts (4 Chariot Soldiers and 2 Water Buffalos per side), and the fact that they start in very survivable positions, there will likely be at least one such piece left when the board is depleted enough that said piece can take advantage of holes in the opponent's defenses.
Recently I revived Suzumu Shogi and Mitsugumi Shogi and added a rule to them forbidding burning pieces (Fire Demons and Heveanly Tetrarches) from burning each other. To enforce this in the GC presets, in theory all I need to do is, on the burning move, make sure that the capture (past and potential) doesn't equal those pieces in the relevant function definitions.
If I need to test for a general capture in this situation, that is pretty easy: cond empty #0 capture (not empty #1). By extension, for ensuring a burning piece isn't captured I would, in theory, need to use cond empty #0 (not match old FD +WB +CS) (not match space #1 FD +WB +CS) in the part of the piece function used for the burning moves. The "FD +WB +CS" part is the ids of the burning pieces.
The second output for the cond statement works fine, but the first doesn't. I think what I need is something that will return the value of old at the time the function is called.
Here is the preset link for Suzumu Shogi in case you need to look at the code: Suzumu Shogi on the Chess Variants Game Courier
So perhaps I just need to put sub FD #0 #1 after the test (I tend to forget GC executes from right to left)?
Edit: That didn't work. I guess I'll just stick to the tried and true method of using the bpromote and wpromote subroutines for the actual rule enforcement.
I am curious though: if you use old in a function definition, does it return the value at the time of the function definition or the function call?
For some reason, when promoChoice is set to + for Shogi-style promotions, the piece names in the table don't show the promoted version when clicked a second time.
Edit: This is only true for the table that shows the selected piece.
The problem was fixed when you fixed the piece promotion not showing. The extra satellite functionality for user defined functions is also quite nice.
Apparently, the site will not allow you to have an empty submission, which is required for the deletion script to work.
Suzumu Shogi and Mitsugumi Shogi (Rules pages and GC preset pages) are ready.
The Heavy Shako GC preset page is also ready.
Mitsugumi-Shogi (Note the hyphen!!!) can be deleted.
That's what the Revisions page is for (in the top menu, Edit -> N revisions). Click the revision you want to select, press Ctrl-U to view the source code. You can then copy the relevant HTML sections into the editors in the Edit Page form.
I hope triple captures besides those of the Lion Dog become a thing in the future. Perhaps by using two additional variables ex2 and ey2? It shouldn't be too hard, at least for updating the functions that use the variables for the move coords to use the and updating the code for highlights, though I could be wrong. If it becomes too complicated for the AI there's always the enableAI=0 option.
That's perfect! Now that that's done, I can test a double-burning Suzumu Fire Demon.
Also, for some reason the Comments section is excessively narrow when viewed from the interactive diagram page.
Now that triple captures other than those of the Lion Dog are supported by the interactive diagram, I am currently testing a new version of Suzumu Shogi, with burning pieces (Fire Demons and Heavenly Tetrarches) that can burn (or capture without moving as in igui) up to two adjacent pieces at once.
One other question: how will the new move generation affect the pieceZone and piecePromotion functions (and other functions that use parameters representing move coordinates)? The new code does not appear to use the old variables that keep track of a move's coordinates. Instead a clicks array is used to store the coordinates for every clicked square in one variable. For obvious reasons, the old parameter list for pieceZone and piecePromotion wouldn't really work all that well.
Also, you should consider adding a section about the user-defined functions so people don't have to read the comments to figure out what they do.
Diagram parameters would be ideal, but there's one little problem. When rule enforcement require complex decision making (such as in Suzumu Shogi's current version, which forbids burning pieces from burning each other) the diagram parameters would be less than ideal. So there would likely still be a need for such functions even if the parameters eliminate the majority of cases where they would be needed.
I'm not sure how you intend to merge move rejection, game termination, mandatory promotion, and offering promotion choice, into a single function, unless JS allows you to return a value that could be one of many different types.
But I suppose it is better to stick to perfecting the new move generation system for now and focus on the functions later in development.
It seems that the holdings do not work correctly. Whenever holdingsType is set to anything other than 0, for each piece, it subtracts the amount on the board from the amount present at the start of the game rather than showing the actual amount in the hand. Also, setting holdingsType to -1 does not change the color for Shogi drops like it should.
It is now fixed. However, I also noticed that promoted pieces are affecting the hand when they shouldn't, particularly for Shogi-style promotions (increments original, decrements promotion).
I have finalized the double burning version of Suzumu Shogi, and by extension, Mitsugumi Shogi. I might reintroduce the ban on burning pieces with burning moves in the future, but the current version of the diagram does not have the tools needed to do that.
The GC presets are no longer up to date.
25 comments displayed
Permalink to the exact comments currently displayed.
The game isn't broken. The preset is not loading. I had the same problem when trying to update Mitsugumi Shogi's preset.