Comments/Ratings for a Single Item
XBetza can do the Rhino now! BTW, the knightcamelzebra image was not available in the PNG35 set.
Grand Betza
XBetza can do the Rhino now!
Very nice!
Fergus, do you think you could take a stab at programming the Rhino in Game Courier? I'd like to get this game added, but the Rhino is problematic.
That XBetza supports it also means you should be able to generate the GAME code for it with the Play-Test Applet. It could be slow, though.
This because the implementation works through decomposing the slide as a number of lame leaps of various distances. So it retraces the same complete path many times, each time a bit longer, rather than just adding the next step to an already verified path.
The Betza interpreter in the GAME code would allow you to do the latter; it has a special format for storing 'irregular slides', (for the benefit of crookev and circular pieces), where each leg indicates through a special flag that the move can also terminate there. (By default all legs of a move would have to be performed.) So that you only have to store the maximum-length move. To get a faster version you could generate GAME code with the Rhino defined as zB, and then hand-edit the step vectors in the generated table to turn them into Rhino moves.
E.g. one of the 8 zB trajectories appears in the table as
7 1 1 1 1048579 // rhino(60) 1 1 -1 1048579 1 1 1 1048579 1 1 -1 1048579 1 1 1 1048579 1 1 -1 1048579 1 1 1 3
When you change all the (1,1) steps into (1,0) steps it becomes an efficient Rhino implementation:
7 1 1 0 1048579 // rhino(60) 1 1 -1 1048579 1 1 0 1048579 1 1 -1 1048579 1 1 0 1048579 1 1 -1 1048579 1 1 0 3
That XBetza supports it also means you should be able to generate the GAME code for it with the Play-Test Applet
Cool. I had no idea that the new XBetza options would be automatically supported by the plat-test applet. That is quite impressive!
The Betza interpreter in the GAME code would allow you to do the latter
I'm not sure what this is. You wrote a Betza interpreter in GAME code?
Nothing much impressive about it. The Play-Test applet links to the same betza.js script that every diagram links to. If I change something there, it will automatically affect all diagrams on the site. (After people refresh their browser cache.)
The script works by first compiling the Betza notation to a list of legs (range, step and mode), a kind of intermediate code. The UI and AI use that list to highlight or generate moves, through an 'interpreter' routine. The 'GAME code' button in the Play-Test Applet dumps that list as a GAME-code array.
I ported the JavaScript interpreter of the list to GAME code. That is what the betza.txt include file is, for the largest part. So it doesn't deal with actual Betza notation; the compilation is done by the JavaScript.
[Edit] Oops. It seems the GAME-code port of the interpreter does not support crooked/circular pieces yet. So the hack I mentioned for makin a more efficient implementation of the Rhino will not work. A reason to fix this in the betza.txt include file. The automatically generated code should have no problems.
Fergus, do you think you could take a stab at programming the Rhino in Game Courier? I'd like to get this game added, but the Rhino is problematic.
Okay, I wrote some new functions for it and got it working. It's in the fairychess include file under the name Rhino.
Great. Thanks, Fergus!
I've used the fairychess include file to make a preset, and everything seems to work fine, including the Rhino, but pawns can't promote. They can't move to the last rank at all. As far as I can tell, I've set everything right. Can you please take a look?
https://www.chessvariants.com/play/pbm/play.php?game=Grand+Betza&settings=rules
I've used the fairychess include file to make a preset, and everything seems to work fine, including the Rhino, but pawns can't promote. They can't move to the last rank at all. As far as I can tell, I've set everything right. Can you please take a look?
You have set bprom and wprom as constants instead of as variables. Consequently, it has nothing to promote the Pawn to on the last rank, and it is forbidding movement to the last rank without something the Pawn may promote to.
10 comments displayed
Permalink to the exact comments currently displayed.
The difficult thing about programming this game is the Rhino. I'm sure Game Courier could do it, but it is probably beyond my abilities.
Also, I don't think this move can be described in XBetza notation, so I assume the interactive diagram can't do it.
The Rhino is an interesting piece. It can be attacking a piece, slide towards it or away from it along that ray, and no longer be able to attack it. This is because each ray is really two overlapping rays that are 50% out-of-phase.