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

Later Reverse Order EarlierEarliest
Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
H. G. Muller wrote at 02:54 PM UTC in reply to Fergus Duniho from 01:16 PM:

OK, I see. The betza.txt code actually does say 'check'. Problem was that by searching for 'say check' I did not find that, because there are quotes around the word 'check'.

It appears that it would only ever say 'check!' when the preset is using the accelerated method for testing legality of highlighted moves. This is the default method, because it is faster. But it is not entirely reliable. The reliable method would try out all pseudo-legal moves, and then generate opponent moves in each of the resulting positions, to see if any of those captures the King. All opponent moves will have to be tried to conclude the move is legal (which usually is the case), and on a large variant this can take very long (to the point where GC aborts the GAME-code execution). And in that branch of teh code it would never say 'check!'.

In the accelerated test it would generate the opponent moves not after the move that has to be tested for legality, but before it. (Meaning that it has to do it only once.) If any of those hit the King, the move that was just made apparently delivers check. After a move considered for highlighting it then only retries such an existing checking move, to see if the check was resolved, and all moves that hit squares mutated by the move-to-be-highlighted (which could have been discovered, and now hit the King). That is a huge time saver.

Where it goes wrong is that during this accelerated check test it actually removes the King, and tests whether it was in check by testing whether a move that hits the square it was on is capture capable. This to avoid a slider check is blocked by the King, making the square behind it to be safe to move to. King moves can then be tested for legality simply by testing whether their destination was marked as attacked. But this procedure does not mark squares that are attacked by locust capture. Such as an Advancer does.


🕸📝Fergus Duniho wrote at 01:16 PM UTC in reply to H. G. Muller from 05:58 AM:

You did not get the point. Does the preset say 'check' when you check with any other piece than an Advancer? I think it doesn't. So then this has nothing to do with the piece being an Advancer.

I dug back into this thread to find the preset he was talking about. He linked to a particular game in which neither Advancer checked the opponent's King. Continuing this game by choosing Annotate and then Move, I played some moves to get a White Flying Dragon to check the Black King, and when I did, it said "check!". After moving the King out of check, I tried to move White's Advancer, but no legal moves are being highlighted on the board for it. However, its legal moves do show up in the Moves field, and when I tried one, it worked. At the top of the Moves field, I see the legal move "A e1-#to; A #to-b1". I think this is not a properly formatted move, and it may be interfering with the ability to recognize the Advancer's legal moves. Also, when I entered it, it did not recognize it as legal, and it gave the error message "#to is not a valid square".

Here are the moves to the position in question so that you can see what's going on.

1. P f2-f5 
1... p f9-f6 
2. P e2-e4 
2... p e9-e7 
3. F i1-h3 
3... f i10-h8 
4. P i2-i3 
4... p d9-d8 
5. B h1-i2 
5... c g10-f7 
6. C d1-f3 
6... f b10-c8 
7. C g1-e3 
7... c d10-f8 
8. K f1-i1 
8... p g9-g7 
9. P b2-b3 
9... c f8-e5 
10. P d2-d4 
10... c e5-f8 
11. B c1-b2 
11... a e10-h7 
12. F b1-e2 
12... p i9-i8 
13. P g2-g5 
13... c f7-e8 
14. P g5-g6 
14... a h7-f9 
15. P c2-c4 
15... p b9-b6 
16. F h3-g2 
16... c e8-d7 
17. P d4-d5 
17... f c8-d6 
18. F e2-h3 
18... p c9-c7 
19. C f3-e6 
19... c d7-e6 
20. P d5-e6 
20... p j9-j8 
21. B b2-a3 
21... b c10-a8 
22. B a3-d6 
22... p e7-d6 
23. R h1-f1 
23... p j8-j7 
24. F g2-d3 
24... b h10-j8 
25. C e3-g1 
25... f h8-i6 
26. P j2-j3 
26... p d8-d7 
27. P a2-a5 
27... p b6-a5 
28. R a1-a5 
28... b a8-b9 
29. P e6-d7 
29... f9-e8;@-d7 
30. C g1-a7 
30... f i6-h4 
31. C a7-d8 // - check! -
31... k f10-f9

Just click on Annotate for Butterfly Chess and paste these in to see the same position.


Electro Chess. Members-Only Every piece has a charge, every square is an electric field. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Espionage chess. Spy can only be captured in turn after it has moved in 41-square variant. (7x7, Cells: 41) [All Comments] [Add Comment or Rating]
HaruN Y wrote at 10:57 AM UTC:
files=7 ranks=7 promoZone=2 promoChoice=NCY graphicsDir=/cgi-bin/fen2.php?s=50&t=Greenwade&w=7b2d1c&b=b85aa9&p= squareSize=50 graphicsType= symmetry=none royal=K coordColor=#c9ddc6 lightShade=#c1d2b7 holeColor=#afbca1 darkShade=#9aa58b rimColor=#727a65 firstRank=1 borders=0 iron=2 captureMatrix=/YS.SSSSSS//////YS.SSSSSS hole::::a1,e1,g1,g3,a5,a7,c7,g7 pawn:P:fmWfcF:pawn:a3,b3,c3,d3,e3,f3,,b5,c5,d5,e5,f5,g5 Spy:Y:Q:spy:e2,,c6 knight:N:N:knight:b2,f2,,b6,f6 bishop:B:B:bishop:c1,c2,,e6,e7 rook:R:R:rook:a2,g2,,a6,g6 queen:Q:Q:queen:d2,,d6 cannon:C:mW4cpW4:cannon:b1,d1,,d7,f7 Sus:S:Q:man: king:K:K:king:f1,,b7

Crossroads. Members-Only Crossing the diagonals generate figures. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Electro Chess. Members-Only Every piece has a charge, every square is an electric field. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
💡📝H. G. Muller wrote at 08:57 AM UTC in reply to Aurelian Florea from 07:53 AM:

Can someone suggest an example where the capture matrix is used?

Minjiku Shogi, Makromachy. For Golem Chess I described how it could be done in the Comments. (At that time I had already made an I.D. in the old way, uses a WeirdPromotion custom script.)


Electro Chess. Members-Only Every piece has a charge, every square is an electric field. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Interactive diagrams. Diagrams that interactively show piece moves.[All Comments] [Add Comment or Rating]
Aurelian Florea wrote at 07:53 AM UTC:

Can someone suggest an example where the capture matrix is used?


Crossroads. Members-Only Crossing the diagonals generate figures. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Electro Chess. Members-Only Every piece has a charge, every square is an electric field. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Maka Dai Dai Shogi. Pieces promote on capture, some to multi-capturing monsters. (19x19, Cells: 361) [All Comments] [Add Comment or Rating]
Vighnesh Jadhav wrote at 06:13 AM UTC:

Why are you not changing the Furious Fiend?


Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
H. G. Muller wrote at 05:58 AM UTC in reply to Kevin Pacey from Thu May 9 08:57 PM:

You did not get the point. Does the preset say 'check' when you check with any other piece than an Advancer? I think it doesn't. So then this has nothing to do with the piece being an Advancer.

By default the preset would apply the checking rule, so moves that leave your royal exposed will be refused. To switch that off (for variants where King capture is a goal) you would have to add an extra line on GAME code to the Pre-Game section. (As the Interactive Diagram does not distinguish thuse cases, but simply allows you to play on in checkmated positions.) The preset enforces the rules. It does not generate conversation during the game.


Crossroads. Members-Only Crossing the diagonals generate figures. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Bob Greenwade wrote at 01:57 AM UTC:

296. Corporal. The Corporal is the most basic "improved Pawn," moving for the most part like an orthodox Pawn except that its forward diagonal move does not require capture. (fFfmWifmnD)

I don't see this piece much, but I think the intent is that it will appear as an auxiliary to conventional Pawns.

The model is utilitarian, simple, and certaintly no less stable than an orthodox Pawn. (I based its look off the Musketeer icon for the piece.)


Smess. British name of Smess, a Parker Brothers game in which arrows on squares determine the directions pieces may move. (7x8, Cells: 56) (Recognized!)[All Comments] [Add Comment or Rating]
HaruN Y wrote at 01:43 AM UTC:Excellent ★★★★★
files=7 ranks=8 promoZone= promoChoice= lightShade= darkShade= graphicsDir=/graphics.dir/smess/ squareSize=74 graphicsType=gif background=https://www.chessvariants.com/play/jocly/dist/browser/games/chessbase/res/rules/smess/board.jpg whitePrefix=B blackPrefix=R firstRank=1 Ninny:P:soabarmpafmpafmpafmpafmpabmpafmpafmpafmpafavWsoabalmpafmpafmpafmpabmpafmpafmpafavWvoabalWsoabasmpafmpafoabmpafmpafasWvmpafmpafmpafoabmpafmpafmpafaroabafhKvoabasmpabaWvmpafoabmpafasmpafoabmpafafWvmpafoabmpafasmpafoabmpafarWvmpafoabmpafarmpafoabmpafablWvmpafmpafmpafmpafmpafmpabmpafmpafmpafmpafmpafabWvmpafmpafoabmpafmpafasoabasWsoabasmpafoabWsmpafoabmpafalmpafmpafoabmpafmpafa(b)WsmpafoabmpafasmpafmpafmpafoabmpafmpafmpafarWvmpafmpafmpafoabmpafmpafmpafalWvmpafmpafmpafoabmpafmpafmpafalmpafoabmpafasWsmpafoabmpafasmpafmpafmpafmpafmpafoabmpafmpafmpafmpafmpafaWsmpafmpafoabmpafmpafasmpafoabmpafafmpabaWsmpafmpafoabmpafmpafasmpafmpafoabmpafmpafavsWsmpafmpafoabmpafmpafasmpafmpafmpafoabmpafmpafmpafavWvmpafoabmpafasmpafmpafmpafoabmpafmpafmpafavWvmpafmpafoabmpafmpafasmpafmpafmpafoabmpafmpafmpafavWvmpafmpafmpafoabmpafmpafmpafasmpafmpafmpafoabmpafmpafmpafa(b)K:Ninny:a2,b2,c2,d2,e2,f2,g2,,a7,b7,c7,d7,e7,f7,g7 morph=.NNBNN. Numskull:N:soabarmpafmpafmpafmpafmpabmpafmpafmpafmpafyavWsoabalmpafmpafmpafmpabmpafmpafmpafyavWvoabyalWsoabasmpafmpafoabmpafmpafyasWvmpafmpafmpafoabmpafmpafmpafaroabyafhKvoabasmpabyaWvmpafoabmpafasmpafoabmpafyafWvmpafoabmpafasmpafoabmpafyarWvmpafoabmpafarmpafoabmpafablWvmpafmpafmpafmpafmpafmpabmpafmpafmpafmpafmpafyabWvmpafmpafoabmpafmpafasoabyasWsoabasmpafoabWsmpafoabmpafalmpafmpafoabmpafmpafya(b)WsmpafoabmpafasmpafmpafmpafoabmpafmpafmpafyarWvmpafmpafmpafoabmpafmpafmpafyalWvmpafmpafmpafoabmpafmpafmpafalmpafoabmpafyasWsmpafoabmpafasmpafmpafmpafmpafmpafoabmpafmpafmpafmpafmpafyaWsmpafmpafoabmpafmpafasmpafoabmpafafmpabyaWsmpafmpafoabmpafmpafasmpafmpafoabmpafmpafyavsWsmpafmpafoabmpafmpafasmpafmpafmpafoabmpafmpafmpafyavWvmpafoabmpafasmpafmpafmpafoabmpafmpafmpafyavWvmpafmpafoabmpafmpafasmpafmpafmpafoabmpafmpafmpafyavWvmpafmpafmpafoabmpafmpafmpafasmpafmpafmpafoabmpafmpafmpafya(b)K:Numskull:b1,c1,e1,f1,,b8,c8,e8,f8 Brain:B:soabarmpafmpafmpafmpafmpabmpafmpafmpafmpafavWsoabalmpafmpafmpafmpabmpafmpafmpafavWvoabalWsoabasmpafmpafoabmpafmpafasWvmpafmpafmpafoabmpafmpafmpafaroabafhKvoabasmpabaWvmpafoabmpafasmpafoabmpafafWvmpafoabmpafasmpafoabmpafarWvmpafoabmpafarmpafoabmpafablWvmpafmpafmpafmpafmpafmpabmpafmpafmpafmpafmpafabWvmpafmpafoabmpafmpafasoabasWsoabasmpafoabWsmpafoabmpafalmpafmpafoabmpafmpafa(b)WsmpafoabmpafasmpafmpafmpafoabmpafmpafmpafarWvmpafmpafmpafoabmpafmpafmpafalWvmpafmpafmpafoabmpafmpafmpafalmpafoabmpafasWsmpafoabmpafasmpafmpafmpafmpafmpafoabmpafmpafmpafmpafmpafaWsmpafmpafoabmpafmpafasmpafoabmpafafmpabaWsmpafmpafoabmpafmpafasmpafmpafoabmpafmpafavsWsmpafmpafoabmpafmpafasmpafmpafmpafoabmpafmpafmpafavWvmpafoabmpafasmpafmpafmpafoabmpafmpafmpafavWvmpafmpafoabmpafmpafasmpafmpafmpafoabmpafmpafmpafavWvmpafmpafmpafoabmpafmpafmpafasmpafmpafmpafoabmpafmpafmpafa(b)K:Brain:d1,,d8


Betza notation (extended). The powerful XBetza extension to Betza's funny notation.[All Comments] [Add Comment or Rating]
HaruN Y wrote at 12:30 AM UTC:

I can't seem to en passant fnafsmW.


Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Thu, May 9 10:18 PM UTC in reply to Kevin Pacey from 08:57 PM:

Yes, I originally would have thought when an Advancer made a move that threatened a King, an enforcing preset would automatically announce check.

However, maybe the Advancer, being an Ultima-like piece, does not actually make a check in an Ultima-like game (which Butterfly Chess is not)?

So I now ask, is that the usual assumption that Applet generated preset code makes for every CV put through the generating process?

I don't know how a generated preset works, but the checked subroutine I use in the fairychess include file normally checks for captures by displacement by checking if each enemy piece on the board can move to the King's position. This would not normally work with Ultima pieces, which do not normally capture by displacement, but I have managed to use this subroutine with Ultima without modifying it. First, let's look at the subroutine:

sub checked king:
    my from piece;
    local movetype;

    set movetype CHECK;
    if isupper cond empty var king $moved space var king:
        def enemies onlylower;
    else:
        def enemies onlyupper;
    endif;
    for (from piece) fn enemies:
        if fn const alias #piece #from var king:
            return #from;
        endif;
    next;
    return false;
endsub;

The key to working with Ultima is that it sets movetype to CHECK. With this in mind, I have written functions for Ultima pieces like this:

def Black_Withdrawer fn join "Black_Withdrawer_" var movetype #0 #1;

Depending upon the value of movetype, it will call either Black_Withdrawer_MOVE or Black_Withdrawer_CHECK, which I have defined separately and differently. Thanks to setting movetype to CHECK, the checked subroutine will use the *_CHECK functions for Ultima pieces. Instead of going through a normal move, one of these functions will check whether the piece at the first coordinate can capture the piece at the second. For example:

def Black_Withdrawer_CHECK 
empty where #frm - file #frm file #to - rank #frm rank #to
and == distance #frm #to 1
and not near #frm I 1
=frm =to;

This first makes sure that the piece is not next to a White Immobilizer (designated as I). It then verifies that the two spaces are adjacent. Calculating the direction away from the piece at #to, it checks whether there is an adjacent empty space in that direction. If there is, it returns true.


Crossroads. Members-Only Crossing the diagonals generate figures. (9x9, Cells: 81) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Constabulary Chess. Members-Only Chess on an 8x10 board with compound piece types added. (8x10, Cells: 80) [All Comments] [Add Comment or Rating]

Since this comment is for a page that has not been published yet, you must be signed in to read it.

Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
Kevin Pacey wrote on Thu, May 9 08:57 PM UTC in reply to H. G. Muller from 06:53 AM:

@ H.G.:

Yes, I originally would have thought when an Advancer made a move that threatened a King, an enforcing preset would automatically announce check.

However, maybe the Advancer, being an Ultima-like piece, does not actually make a check in an Ultima-like game (which Butterfly Chess is not)? So I now ask, is that the usual assumption that Applet generated preset code makes for every CV put through the generating process? If so, maybe an option can be added to the Applet to ask if Ultima-like pieces should announce check.

A problem for Butterfly Chess, anyway, is that if check is not announced for Advancers, what happens if the opponent's next move leaves his king vulnerable to capture by the Advancer. Does the preset announce the opponent made an illegal move (my much preferred choice, implicit in Butterfly Chess rules), or can the king be captured (if so, is a win announced, or does a player type in 'won' after his K-capturing Advancer move is manually entered, or does he tell his opponent to make a legal move instead)?


25 comments displayed

Later Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.