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 Latest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Ratings & Comments

LatestLater Reverse Order EarlierEarliest
Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Mon, Jun 27, 2022 10:05 AM EDT in reply to Aurelian Florea from 09:12 AM:

Oh sorry, my bad. I mistakenly thought that the 4-step castlings always ended on the Rooks. But this is only true on the king-side. That means we have to define another set 'badRook' to specify where Rook castlings cannot go, different from the set that specifies where the Rooks are. (And use that in BadZone when we see the locust square is at a Rook.)

set badRook (c2 k2 c13 k13);
def BadZone #locust and match #locust #partners and cond match #locust #rooks match #dest #badRook match #dest #badCannon =O =dest =locust =D =P;

Aurelian Florea wrote on Mon, Jun 27, 2022 09:12 AM EDT in reply to H. G. Muller from 08:34 AM:

It seems we are almost there. The 4 squares to the left castling with the rook should also be suppresed.


💡📝H. G. Muller wrote on Mon, Jun 27, 2022 08:34 AM EDT in reply to Aurelian Florea from 07:40 AM:

OK, I see what the problem is. The way the Play-Test Applet generated GAME-code for the King's castling moves that you specified, will lead to the 3-step moves of the King appearing twice in the legdefs array. Once for the Rook, and once for the Cannon castling. The code in the included betza.txt does not need that (because each specified castling step would automatically work with any partner spesified in the 'partners' array), and is in fact not resitant to that. When it gets the first match with the input move (which it supposes to be the only match), it already executes the 'locust capture', in this case the removal of the Rook. When it tries the same King step again, and thus again gets a match with the input move, the Rook is gone, and the Cannon is the closest piece. (And then also removed, and remembered as piece to drop next to the King.)

Easiest way to fix this is to clip the duplicat definition of the 3-step castlings (which luckily happen to be the last two moves of the King) off the move list, by changing a 2 in a 0 (at the start of the commented line). Like

1  1  0  1     3 // king(95)
1  1  1  1     3
1  1  1  0     3
1  1  1 -1     3
1  1  0 -1     3
1  1 -1 -1     3
1  1 -1  0     3
1  1 -1  1     3
2 99  1  0    72
   1  3  0     9
2 99 -1  0    72
   1 -3  0     9
2 99  1  0    72
   1  4  0     9
2 99 -1  0    72
   1 -4  0     9
2 99  1  0   33554504
   1  2  0     9
2 99 -1  0   33554504
   1 -2  0     9
0 99  1  0   33554504 // here a 0 for the number of legs indicates no more moves follow
   1  3  0     9
2 99 -1  0   33554504
   1 -3  0     9
0


Aurelian Florea wrote on Mon, Jun 27, 2022 07:40 AM EDT in reply to H. G. Muller from 04:20 AM:

There is no error now but the short 3 squares castle with the rook still deletes the rook while jumping the cannon over the king!


💡📝H. G. Muller wrote on Mon, Jun 27, 2022 04:20 AM EDT in reply to Aurelian Florea from 01:53 AM:

That is not as it is supposed to be. But since this is one of the moves that we want to outlaw, we don't have to worry about that now. Your test results suggest that the error was caused by #locust being undefined for non-castling, non-e.p. moves, and that the match operator doesn't like having an undefined first operand. Starting the BadZone definition with #locust and intercepts that case before it gets fed to the match operator.

This is the definition that should exactly do what you want, then:

def BadZone #locust and match #locust #partners and cond match #locust #rooks match #dest #rooks match #dest #badCannon =O =dest =locust =D =P;

Aurelian Florea wrote on Mon, Jun 27, 2022 01:53 AM EDT in reply to H. G. Muller from Sun Jun 26 05:06 PM:

None of them gave an error, but with the last one when I tried to castle 3 squares with the rook, the king was in it's proper place but instead of the rook, the cannon was moved by the king and the rook got totally deleted.


💡📝H. G. Muller wrote on Sun, Jun 26, 2022 05:06 PM EDT in reply to Aurelian Florea from 02:25 PM:

Well, GAME-code doesn't excell in clarity of error messages. So we have to figure out what the problem is by trial and error. For this purpose we will start with a very simple definition of BadZone, and gradually increase its complexity to see how far we get. Start with:

def BadZone false =O =dest =locust =D =P;

This should allow everything, including 2-, 3- and 4-step castling with both Cannon and Rook. Then try:

def BadZone #locust =O =dest =locust =D =P;

This should not allow any castling or e.p. capture. Then:

def BadZone #locust and match #locust #partners =O =dest =locust =D =P;

This should now also allow e.p. capture, but all castlings would still be forbidden. Then:

def BadZone #locust and match #locust #partners and match #dest #badCannons =O =dest =locust =D =P;

This should allow everything except 2-step castlings.


Game Courier Ratings. Calculates ratings for players from Game Courier logs. Experimental.[All Comments] [Add Comment or Rating]
Kevin Pacey wrote on Sun, Jun 26, 2022 04:47 PM EDT:

@ Fergus:

I'm wondering if there is a bug in the way GC does the total rated games for individual players. For example, I just finished a drawn publicly viewable Fischerrandom game with Play Tester, yet for both his public and rated games for Fischerrandom it shows he still has perfect scores.

Also, I once tallied up my rated games for (orthodox) chess, and I was not credited for one of my drawn games, but seemed to have received a loss instead.

Kevin


Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
Aurelian Florea wrote on Sun, Jun 26, 2022 02:25 PM EDT:

The thing is that I'm getting the same error!


Aurelian Florea wrote on Sun, Jun 26, 2022 01:22 PM EDT in reply to H. G. Muller from 12:12 PM:

Oh, this is not what I meant. I have edited my previous comment.


💡📝H. G. Muller wrote on Sun, Jun 26, 2022 12:12 PM EDT in reply to Aurelian Florea from 11:06 AM:

Yes, isn't that what I wrote in the first place?


Aurelian Florea wrote on Sun, Jun 26, 2022 11:06 AM EDT in reply to H. G. Muller from 07:52 AM:

You mean like this:

set partners (b2 k2 b13 k13 a2 l2 a13 l13); // 'rook' locations for castling

set rooks (b2 k2 b13 k13);

set badCannon (e2 i2 e13 i13);

def BadZone #locust and match #locust #partners and cond match #locust #rooks match #dest rooks match #dest #badCannon =O =dest =locust =D =P;

set zonal true;

?


💡📝H. G. Muller wrote on Sun, Jun 26, 2022 07:52 AM EDT in reply to Aurelian Florea from 06:43 AM:

I see no definition for 'rooks' in the code you posted. It could be that it doesn't like that. Another problem could be the case where 'locust' is 'undefined' (as it might be for most moves). I don'tknow how the match operator handles that. If there still is an error after defining rooks, try to insert an extra

#locust and

Directly after

def BadZone

This might make the code more efficient anyway, because it would never get to the match parts (which might be expensive) for moves other than castling or e.p..


Aurelian Florea wrote on Sun, Jun 26, 2022 06:43 AM EDT in reply to Aurelian Florea from Sat Jun 25 08:53 AM:

With the following code:

set partners (b2 k2 b13 k13 a2 l2 a13 l13); // 'rook' locations for castling set badCannon (e2 i2 e13 i13); def BadZone match #locust #partners and cond match #locust #rooks match #dest rooks match #dest #badCannon =O =dest =locust =D =P; set zonal true;

I'm getting this error:

213 if #zonal 214 verify not fn BadZone #orisqr #destsqr #locustsqr #dropsqr #unload 215 endif

at line 214


Pandemonium (Surajang修羅場). Capablanca chess + Crazyhouse.[All Comments] [Add Comment or Rating]
💡📝Daphne Snowmoon wrote on Sat, Jun 25, 2022 05:55 PM EDT:

The setup has changed a lot !


Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote on Sat, Jun 25, 2022 09:48 AM EDT in reply to Aurelian Florea from 08:53 AM:

I guess you could use the applet-generated code like 2-, 3- or 4-step castling is always possible, with both Rook and Cannon (adding the latter to the 'partners' array). Like it already seems to be. And then supply a function 'BadZone' in GAME code to suppress the two cases you do not want (2-step for Cannon and 4-step for Rook). You would have to set a variable 'zonal' to true in the Pre-Game code to cause this BadZone function to be called.

The function BadZone will get called with 5 parameters: origin, destination, locust square, drop square, and piece to drop on the latter. For castling the castling partner will be on the locust square. I don't think your variants have locust capture other than e.p., so when the locust square is in the 'partners' array you can be sure it is a castling, and there is no need to test whether it was actually a King that was moved.

I would do it as follows:

set rooks (b2 k2 b13 k13);
set badCannon (e2 i2 e13 i13);
def BadZone match #locust #partners and cond match #locust #rooks match #dest rooks match #dest #badCannon =O =dest =locust =D =P;
set zonal true;

This would declare the move invalid when the locust victim is one of the castling partners (match #locust #partners), AND, depending on whether it is one of the Rooks (match #locust #rooks) whether the destination square (of the King) is on the Rook (match #dest #rooks) or whether the destination square is two steps away from the King (match #dest #badCannon).


Aurelian Florea wrote on Sat, Jun 25, 2022 08:53 AM EDT in reply to H. G. Muller from 05:51 AM:

Ok, this means I have to do a separate castling subrountine but that is very difficult, so if you have any advice, I'd gladly take it.


💡📝H. G. Muller wrote on Sat, Jun 25, 2022 05:51 AM EDT in reply to Aurelian Florea from 05:23 AM:

With respect to

In the first preset, when I select the King (after clearing away pieces between King and Rook) it highlights all squares between King and Rook. If I then click the second of that, it does a 2-step castling. I have little doubt that on clicking the 3rd it would do a 3-step castling. If I click on the Rook (which is also highlighted) it does a 4-step castling.


Aurelian Florea wrote on Sat, Jun 25, 2022 05:23 AM EDT in reply to H. G. Muller from 05:18 AM:

Well if I move my king on top of the rook is castles (3 squares king move). What is w.r.t?


💡📝H. G. Muller wrote on Sat, Jun 25, 2022 05:18 AM EDT in reply to Aurelian Florea from Fri Jun 24 06:25 AM:

I am not sure why you refer to 'fast castling'. Is that the type of castling proposed by Kevin Pacey in his wide-board variants? Neither the Diagram nor the GAME-code produced by it do support such castling.

The Cannon would have to be in the partners set to allow castling with it. How far the King moves on castling is defined in the moves of the King; castlings are defined in the legdefs table as two-leg moves, the first leg being the slide that has to be used to find the partner, and the second leg (only attempted when a partner could be reached) indicates the leap the King should make. Your presets appear to define both 2-step and 3-step castlings for the King.

A problem is that the castling moves you define on the King are not critical w.r.t. the partner they use; any piece in the partner set would do. So it would not be possibe to only allow 2-step castling with a Rook, but not with a Cannon.


Aurelian Florea wrote on Fri, Jun 24, 2022 06:25 AM EDT in reply to H. G. Muller from Wed Dec 29 2021 05:00 PM EST:

@HG,

In these games:

https://www.chessvariants.com/play/pbm/play.php?game=Grand+Apothecary+Chess+1&settings=Applet

https://www.chessvariants.com/play/pbm/play.php?game=Grand+Apothecary+Chess+2&settings=Applet

https://www.chessvariants.com/play/pbm/play.php?game=Grand+Apothecary+Chess+3&settings=Applet

castling is supposed to work like described here:

https://www.chessvariants.com/rules/grand-apothecary-chess-alert

https://www.chessvariants.com/rules/grand-apothecary-chess-classic

https://www.chessvariants.com/rules/grand-apothecary-chess-modern

but it does not. It just give fast castling with the rook. I see that this line:

set partners (b2 k2 b13 k13);

should contain the cannons initial position also. That is easy to solve. But I have no idea about the fast castling. May you help me with making the necessary modifications?


The nightrider in Grand Apothecary Chess Alert, Classic and Modern[Subject Thread] [Add Response]
Aurelian Florea wrote on Wed, Jun 22, 2022 06:44 AM EDT in reply to Jean-Louis Cazaux from 02:01 AM:

@Jean-Louis

I have not designed these games for the nightriders but they seem to work ok probably because of the high board density.


Aurelian Florea wrote on Wed, Jun 22, 2022 06:18 AM EDT in reply to Jean-Louis Cazaux from 02:01 AM:

Thanks for the reply Jean-Louis!


Trappist-1. Chess game with no boundaries. includes Guard, Chancellor, Hawk, and Huygens. () [All Comments] [Add Comment or Rating]
H. G. Muller wrote on Wed, Jun 22, 2022 05:37 AM EDT in reply to Gavin Yancey from Tue Jun 21 03:51 PM:

There is nothing 'unknown' about the set of prime numbers; it is in fact very well known that there is no such thing as a 'complete' set of them, as the set is infinite. There exist simple (albeit inefficient) algorithms to determine for any given number whether it is prime or not.

It is also a misconception that the presence of a Huygens would make a game unsolvable due to the properties of primes or any other of its properties. E.g. it is very easy to prove a game with a starting position of King + 2 Queens vs King + Huygens on an infinite board is won for the Queens. It is even possible to give a detailed algorithm for how to do this, in a number of moves that only grows logarithmically with the distance between the Huygens and the Kings. If the Huygens has the first move, this number can of course be made arbitrarily large, by moving the Huygens far away after it runs out of safe checks (because the King approached it).

All this would still be true if the Huygens was a Rook, rather than a subset of it.


The nightrider in Grand Apothecary Chess Alert, Classic and Modern[Subject Thread] [Add Response]
Jean-Louis Cazaux wrote on Wed, Jun 22, 2022 02:01 AM EDT in reply to Aurelian Florea from Mon Jun 20 03:45 PM:

Hi Aurelian. I belong to those who are not at ease with NN. Same with DD or AA and all their compounds. I had tested once a FDD to finally give it up. But I agree that they can be used if the game is designed for, like yours. It also requires a certain anticipation from the players who are not used to, and this is precisely what I'm missing from my side.


Trappist-1. Chess game with no boundaries. includes Guard, Chancellor, Hawk, and Huygens. () [All Comments] [Add Comment or Rating]
Gavin Yancey wrote on Tue, Jun 21, 2022 03:51 PM EDT in reply to David Haft from Mon Jun 14 2021 05:59 PM:

I wrote a digital implementation of this a few years ago. It's somewhat incomplete and probably a bit buggy, but likely good enough to play.

Code here: https://github.com/g-rocket/trappist-1-chess/

I'm currently hosting it at http://chess.yancey.io/ -- although don't expect that to be highly available.


The nightrider in Grand Apothecary Chess Alert, Classic and Modern[Subject Thread] [Add Response]
H. G. Muller wrote on Tue, Jun 21, 2022 04:53 AM EDT in reply to Aurelian Florea from 01:09 AM:

This is probably because Vultures can easily be blocked. A Falcon, which also has 16 targets, empirically tested as about equal to a Rook. Th Vulture has 4 paths rather than 3, but each path can be blocked in 3 places rather than 2. The 4 non-capturing leaps add comparatively little.

The value estimate of the Diagram takes this into account by measuring the average number of moves in randomly generated positions where 25% of the squares are occupied.


27 comments displayed

LatestLater Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.