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

Comments by FergusDuniho

EarliestEarlier Reverse Order LaterLatest
Eurasian Chess. Synthesis of European and Asian forms of Chess.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Wed, Mar 9, 2022 04:42 PM UTC:

First, I tested the ten latest finished games of Eurasian Chess against the new preset, and they all displayed correctly. Then I made a backup of the newrules preset called newrules-backup, and I saved the fairychess preset under the name newrules. With that done, I viewed every finished and active game of Eurasian Chess using the now updated newrules settings file, and they all displayed correctly. Although the new preset works differently, it is notationally equivalent to the previous preset, which allowed me to completely replace the previous one with the new one.

The new preset should now prompt you about optional Pawn promotions, and it should use full piece names and give piece descriptions in error messages.


The Fairychess Include File Tutorial. How to use the fairychess include file to program games for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Wed, Mar 9, 2022 05:32 PM UTC:

Based on how I decided to handle the King in Eurasian Chess, I made some changes to the Chinese_General code. Here is the original Chinese_General function:

def Chinese_General checkride #0 #1 1 0
and == Chinese_General const alias cond empty #0 capture space #1
or checkleap #0 #1 0 1 and flag #1;

And here is the new one:

def Chinese_General 
== distance #0 #1 1
or == var movetype CHECK
and checkride #0 #1 1 0
and flag #1;

Both functions begin by checking whether the destination space is flagged, since the code flags every space within a palace. This keeps the piece from moving out of the palace, though it does allow a move from one palace to the other, which is what allows one general to threaten the other with check.

The main difference is how it handles this threat. It now uses the CHECK movetype instead of checking the identity of the other piece. The checked subroutine sets a local copy of movetype to CHECK. So, when movetype is CHECK, that means the function is being called from within the checked subroutine.

Another difference is that it only uses checkride, and it does not use checkleap. Instead of using checkleap, the final thing it checks is the distance of the move, and it checks that only if it has not been called from the checked subroutine.

I also changed the Chinese_General-Range function. It used to be this:

def Chinese_General-Range merge leaps #0 1 0 (var kpos var Kpos);

And now it is this:

def Chinese_General-Range leaps #0 1 0;

The reason for this is that -Range functions are called only by the stalemated subroutine for checking possible legal moves, and they are never called by the checked subroutine. Since a General can never legally move to the space occupied by the other General, there is no need to include the space of the opponent's General in the spaces a General may legally move. Its ability to move there is of concern only when checking for checking threats on a space a General might move to.

I tested multiple games of Chinese Chess without any problem occurring, and I made moves to specifically test that Generals were not allowed to oppose each other, that they couldn't move outside the Palace, and that they couldn't move two spaces within the palace. So, the code described above appears to be working.


Shogi. Play the Japanese form of Chess, in which captured pieces can be dropped back as your own. (Recognized!)[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Fri, Mar 11, 2022 03:59 AM UTC:

I'm working on a new Shogi preset that will use the fairychess file. I created new built-in functions for it I'll describe tomorrow. Here is a sequence of moves I am using for testing. The current position is one where a Pawn drop would cause checkmate if it were allowed. It currently stops the actual move, but it still displays the Pawn drop as a legal move. Since I am having trouble posting the form, here is the list of moves:

1. p 5g-5f 
1... P 3c-3d 
2. p 7g-7f 
2... B 2b-8h; +B-dest 
3. s 7i-8h 
3... B*5g 
4. g 6i-6h 
4... B 5g-2d; +B-dest 
5. p 2g-2f 
5... P 5c-5d 
6. p 5f-5e 
6... P 5d-5e 
7. g 6h-5g 
7... +B 2d-5g 
8. g 4i-5h 
8... +B 5g-3i 
9. b*5g 
9... +B 3i-2h 
10. n 8i-7g 
10... S*7h 
11. k 5i-6h 
11... S 7h-8i; +S-dest 
12. p 2f-2e 
12... P 2c-2d 
13. p 2e-2d 
13... P 6c-6d 
14. p 2d-2c; +p-dest 
14... P*2b 
15. +p 2c-2b 
15... R 8b-2b 
16. p 6g-6f 
16... +S 8i-8h 
17. p*5b // - Check! -
17... G 4a-5b 
18. n 7g-6e 
18... P 6d-6e 
19. p 6f-6e 
19... +S 8h-9i 
20. p*5f 
20... N*7e 
21. p 8g-8f 
21... R*8g 
22. p 5f-5e 
22... L*7g 
23. p 6e-6d 
23... +S 9i-8i 
24. p 5e-5d 
24... +S 8i-7i 
25. p 5d-5c; +p-dest 
25... G 5b-5c 
26. p 6d-6c; +p-dest 
26... G 5c-6c 
27. p*5i 
27... P*6g // - Check! -
28. g 5h-6g 
28... N 7e-6g; +N-dest // - Check! -
29. k 6h-6g 
29... R 8g-8h; +R-dest 
30. b 5g-4f 
30... R 2b-5b 
31. n*2c 
31... S*6e 
32. n 2c-1a; +n-dest

🕸📝Fergus Duniho wrote on Sat, Mar 12, 2022 12:27 AM UTC in reply to Fergus Duniho from Fri Mar 11 03:59 AM:

I fixed the bug I described last night and some others. When I checked the current preset, it had the same bug and another one. Instead of working on fixing the current preset, I will work on finishing the new preset, then replace the current one with it. It seems to be working correctly, but there are some features I want to add.


Game Courier Developer's Guide. Learn how to design and program Chess variants for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sat, Mar 12, 2022 03:37 AM UTC:

I have added the following built-in functions: chars, string, hasalnum, hasalpha, hasdigit, haslower, and hasupper. The chars and string functions can be used together to process a string with a lambda function filter, using chars to turn a string into an array of characters, and using string to converted the processed array back into a string. For example, promoted pieces in Shogi put a plus sign before the usual piece label, and the boldfaced part of this line demotes a piece in Shogi by removing any non-alphabetic characters:

set demoted flipcase realname string filter lambda (isalpha #1) chars alias space $dest;

The has functions are similar to isalnum, isalpha, isdigit, islower, and isupper, but instead of checking whether every character in a string is of a particular type, these check whether any character, even just one, is of a particular type. These come in handy when piece labels include non-alphabetic characters, as promoted pieces do in Shogi.


Shogi. Play the Japanese form of Chess, in which captured pieces can be dropped back as your own. (Recognized!)[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sat, Mar 12, 2022 04:00 AM UTC:

Since the new preset appears to be more bug-free, I copied the default settings file to default-backup, and I copied the one I was working on to default. So, past, current and new Shogi games will all use the new Shogi preset that uses the fairychess include file. Details are on the page.


🕸📝Fergus Duniho wrote on Sat, Mar 12, 2022 06:04 PM UTC:

Besides using the fairychess include file, the new Shogi preset uses its own fairyshogi include file. Here I'll go over some of the new features in this include file.

Besides using -Range functions to indicate the range of movement of a piece, this include file uses -Drop functions to indicate which spaces a piece may be legally dropped on. The stalemated function uses a foreach-next loop to go through all empty spaces on the board, and it tests each space with the Drop function for the piece to be dropped. The simplest Drop function looks like this:

def Unrestricted-Drops #0 or true;

This just returns true, and it gets copied to every piece that can be dropped to any empty space like so:

foreach notation array r R b B g G s S:
    set funcname join const #notation "-Drop";
    copyfn Unrestricted-Drops #funcname;
next;

Lances and Knights have slightly more complicated Drop functions:

def White_Lance-Drop onboard where #0 0 1;
def Black_Lance-Drop onboard where #0 0 -1;
def White_Shogi_Knight-Drop onboard where #0 0 2;
def Black_Shogi_Knight-Drop onboard where #0 0 -2;

Instead of testing for specific ranks, these use onboard and where to test whether there is a space on the board one or two spaces ahead of the location the piece might be dropped on. This works better with boards of different sizes than naming specific ranks would.

The Pawns have the most complicated Drop functions:

def White_Shogi_Pawn-Drop allfalse lambda (== const space #0 White_Shogi_Pawn) merge ray #0 0 1 ray #0 0 -1 and onboard where #0 0 1;
def Black_Shogi_Pawn-Drop allfalse lambda (== const space #0 Black_Shogi_Pawn) merge ray #0 0 1 ray #0 0 -1 and onboard where #0 0 -1;

Beginning at the end, these first make the same test as the Lance's Drop functions do. Next, they test whether there is another Pawn on the same file. This is done by passing allfalse a lambda function that takes as its input an array of all the spaces in the file except the one the Pawn may potentially drop to. Whether this is an actual or a potential move, this space does not need to be tested. For an actual move, the Pawn will already be there before the test is performed, and for a potential move, a drop there would not be considered unless this space were already empty. To test the other spaces, the code uses the codename for the type of Pawn being checked. This is to prevent the function from being dependent on specific notation for a piece.

This function does not test whether a Pawn drop will checkmate the King. This last test is done within the stalemated subroutine after temporarily dropping the Pawn.

Because not all piece labels are entirely alphabetic, it now uses haslower and hasupper instead of islower and isupper to identify which side pieces are on.

Because functions are normally global, the stalemated and matedbypawn subroutines do not define functions within themselves. Instead of defining the friend function, they set the variable friend to a lambda function that gets called by fn #friend. Instead of defining the friends function, they set the friends variable to an array of all pieces on the same side. Unlike functions, these are kept local to the subroutine they were created in, allowing matedbypawn to use some of the same variable names as stalemated without messing up the assignments stalemated has made to variables with the same name.


🕸📝Fergus Duniho wrote on Sat, Mar 12, 2022 10:41 PM UTC:

Using fairy-test rather than default, I am working on getting it to handle the scenario where all pieces except the King are held in hand. The board has only 36 spaces pieces can be held in hand on, but there are 38 that may be held in hand. For testing purposes, the following series of moves brings the board to a position in which 36 pieces have been captured, and the others may soon be captured:

1. p 7g-7f 
1... P 3c-3d 
2. b 8h-2b; +b-dest 
2... S 3a-2b 
3. b*2f 
3... B*8h 
4. b 2f-5c; +b-dest 
4... B 8h-9i; +B-dest 
5. +b 5c-6c 
5... +B 9i-8i 
6. +b 6c-7c // - Check! -
6... N 8a-7c 
7. p 7f-7e 
7... +B 8i-7i 
8. p 7e-7d 
8... +B 7i-6i // - Check! -
9. k 5i-6i 
9... R 8b-5b 
10. p 7d-7c; +p-dest 
10... R 5b-5g; +R-dest 
11. +p 7c-8c 
11... +R 5g-4g 
12. +p 8c-9c 
12... +R 4g-3g 
13. r 2h-7h 
13... +R 3g-2g 
14. r 7h-7a; +r-dest 
14... +R 2g-2i 
15. +r 7a-9a 
15... +R 2i-1i 
16. +r 9a-6a // - Check! -
16... K 5a-4b 
17. +r 6a-4a // - Check! -
17... K 4b-3c 
18. +r 4a-2a 
18... +R 1i-1g 
19. +r 2a-1a 
19... +R 1g-6g // - Check! -
20. k 6i-7i 
20... +R 6g-8g 
21. +r 1a-2b // - Check! -
21... K 3c-4d 
22. +r 2b-1c 
22... +R 8g-9g 
23. +r 1c-2c 
23... +R 9g-9c 
24. +r 2c-3d // - Check! -
24... K 4d-5e 
25. +r 3d-4c 
25... +R 9c-4c 
26. k 7i-6h 
26... +R 4c-4i 
27. s 3i-4h 
27... K 5e-5f 
28. s 4h-4g // - Check! -

🕸📝Fergus Duniho wrote on Sat, Mar 12, 2022 10:45 PM UTC in reply to H. G. Muller from 09:13 PM:

In Chess illegal moves can never occur in a game; FIDE rules prescribe that such move should be taken back, and replaced by a legal one. But in Shogi, you just lose.

I checked Wikipedia, and it says the following:

In professional and serious (tournament) amateur games, a player who makes an illegal move loses immediately.[c] The loss stands even if play continued and the move was discovered later in game. However, if neither the opponent nor a third party points out the illegal move and the opponent later resigned, the resignation stands as the result.

This makes sense for over-the-board games, which is how Shogi is normally played in professional tournaments. But it does not make sense for Game Courier, which lets players preview their moves before confirming them. Just like it makes sense for Game Courier to ignore the rule in Chess that you have to move a piece if you touch it, it makes sense for Game Courier to ignore this rule.

The Japanese consider this an important thing: the 81-Dojo server does not refuse illegal Pawn drops, because that would be considered computer help.

I have never played on that server. Given the way this Game Courier preset works, each side is provided computer help, but it is equal for each player. If players want to play without computer help, as players in over-the-board tournaments do, they can play an unprogrammed preset. The programmed preset is programmed to display legal moves and forbid illegal moves, and to do this consistently, it should display only legal moves as legal and forbid all illegal moves.


Shako. Cannons and elephants are added in variant on 10 by 10 board. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Mar 12, 2022 11:39 PM UTC in reply to Jean-Louis Cazaux from 09:19 PM:

I don't know how I had found it worked. Today, it doesn't work

What doesn't work? The new URL for this page works, and the old URL goes to a 404 page with a link to the new URL, which is what it is supposed to do.

I'm asked the pwd for fairmirza.

What? I don't know what you're saying.


🕸Fergus Duniho wrote on Sun, Mar 13, 2022 12:01 PM UTC in reply to Jean-Louis Cazaux from 11:11 AM:

I just switched the order in which you and Hans are listed as authors. See if that makes a difference.


Shogi. Play the Japanese form of Chess, in which captured pieces can be dropped back as your own. (Recognized!)[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sun, Mar 13, 2022 10:17 PM UTC:

The code for handling every piece but the Kings being held in hand seems to be working now. Instead of expanding the area of the board available for captured pieces, it uses a couple variables to hold the last two pieces. When the last two captured pieces are not Pawns, it switches them with Pawns, so that they remain available for dropping. As pieces are dropped, it moves Pawns from the variables back to the visible in-hand area. In practice, actual games will usually not get this far, and they will have no need for this code. The updated preset seems to be displaying past games well, though since Shogi is the most popular game on Game Courier, I have not tested them all.


Game Courier History. History of the Chess Variants Game Courier PBM system.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Tue, Mar 15, 2022 07:52 PM UTC in reply to A. M. DeWitt from 06:41 PM:

It seems the new handling of case is interfering with the display of the Preset Editor, at least for me.

There is a double space in the case statement on the line where the error is.

The error message it gave wasn't quite accurate, because the actual string was the empty string, not one with whitespace in it. I modified it to skip over empty strings. So, it works now.


How to Enforce Rules in Game Courier. A tutorial on programming a rule-enforcing preset in the GAME Code language.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Tue, Mar 22, 2022 05:01 PM UTC:

Attention Game Courier Developers

While working on a preset for Miller's Spherical Chess, I was using the problem composer to set up positions for testing whether the pieces had the correct moves. While doing this, I happened to have the white King on h1 while testing its powers of movement, and it had nine moves highlighted as legal. I eventually figured out that it was counting the castling moves as legal even though I had no Rooks on the board.

To fix this, I replaced this code:

setflag a1 a8 h1 h8 e1 e8;

with this code, which conditionally checks whether the right piece is on each space before setting the flag.

if == K space e1:
  setflag e1;
endif;
if == R space a1:
  setflag a1;
endif;
if == R space h1:
  setflag h1;
endif;
if == k space e8:
  setflag e8;
endif;
if == r space a8:
  setflag a8;
endif;
if == r space h8:
  setflag h8;
endif;

The reason the King was getting an extra legal move on h1 is because h1 was flagged for the Rook. When I tried the King on g1, it had only 8 legal moves. By setting each flag conditionally, a problem will not allow castling unless a King and Rook are in the right positions for castling. I have made this change to the Chess preset, and with appropriate modifications, it should be made for any preset that allows castling and uses flags to control when castling is allowed.


Heavy Shako. (Updated!) 10x10 variant inspired by Yangsi, made by Eric Silverman and Jean-Louis Cazaux.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, Mar 23, 2022 03:33 PM UTC:

You haven't given any explanation of how the King castles differently. Since the King is the same distance from the Rooks as in Chess, it looks like it would castle the same.

You mention that the Pawn "is subject to different rules of promotion." But all you say on that matter is list all the pieces it can promote to. It is standard in Chess variants for a Pawn to be able to promote to any piece in the game besides the King or Pawn. So, if the only difference is that the Pawn has more promotion options due to the game having more types of pieces, it's not really subject to different rules of promotion. So, you just need to say that it can promote to any piece but a King or Pawn, and it has more promotion options than in Chess, because this game has more types of pieces.

I corrected the spelling of squirrel in the interactive diagram.


Castle Siege Chess. Members-Only Traditional Chess merged with Circular Chess.[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.

WeGo Chess. Members-Only Perfectly balanced, simultaneous play.[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.

Chess with magic fields. Members-Only Missing description (8x8, Cells: 64) [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.

Chess with magical connections. Missing description (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Thu, Mar 24, 2022 04:37 PM UTC:

Many of my remarks from your magic fields game also apply here.

This game follows the rules of chess with additions.

We don't have a page for that game, and without it, the rules to this game are left unexplained.

Chess with magic connections is a type of chess in which a piece or pawn changes its properties if there is support by two connections.

There has been no explanation of what magic connections are or of how they work.


Heavy Shako. (Updated!) 10x10 variant inspired by Yangsi, made by Eric Silverman and Jean-Louis Cazaux.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Fri, Mar 25, 2022 05:19 PM UTC:

I unhid this. I corrected the link to Shako in the introduction. And I changed Shako to Chess in the Rules section, because this gives more finality to the description of the rules, and Shako doesn't do anything different from Chess that anyone would have to look up to fully understand how to play Heavy Shako.


Play Nadvorney's Spherical Chess on Game Courier. Play Nadnorney's adaptation of Chess to a spherical board on Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Tue, Mar 29, 2022 02:20 PM UTC in reply to David Cannon from 12:18 PM:

The only game completed so far ended in checkmate. The pole amplified the power of the Queen, allowing a checkmate in a position that would not be checkmate in Chess.

If you check the rules page for Spherical Chess, you will find multiple variants. The one called Sphere Chess has limited the King's powers of movement to those in Chess on a 2D board.


Devingt Chess. Decimal chess with 20 pieces per side including Sages (moving as Camels).[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sun, Apr 3, 2022 07:58 PM UTC in reply to Jean-Louis Cazaux from 04:38 PM:

castling: the K may move 2 OR 3 sq towards the R

I just added some subroutines to the fairychess include file for this. These are castle2, castlepos2, and stalemated2, which are substitutes for castle, castlepos, and stalemated. Unlike castle and castlepos, castle2 and castlepos2 take four arguments instead of two. The first two are the same as before, the from and to coordinates for the King. These should be followed by the from and to coordinates for the piece the King is castling with. Unlike castle, which will handle all possible castling moves in the direction of the King's move, castle2 specifies a specific castling move. The stalemated2 subroutine differs from stalemated by calling castlepos2 and by writing out legal castling moves as two-piece moves.

The code in the preset also has to be changed to accommodate this. This line should be added in the Pre-Game code:

allow moves 2

You will also have to set different values for bcastle and wcastle. Instead of giving them a list of all the spaces a King may castle to, each should be given a list of fully described castling moves. Each should appear as four coordinates in parentheses in the same order they are fed into castle2. For your game, you would want to include four sets of coordinates for each King, one for each specific castling move.

In the Post-Move sections, castling moves have to be handled separately from regular moves. This means that the King subroutine should be rewritten to not include castling. An example of what to do can be seen in the preset for Miller's Spherical Chess, which uses the versions of these subroutines from the logical include file. The relevant code looks like this for White:

if isupper alias $prevmoved:
  if == $prevmoved K and == $moved R:
    if == $origin a1:
      gosub castle2 e1 c1 a1 d1;
    elseif == $origin h1:
      gosub castle2 e1 g1 h1 f1;
    else:
      die $moves "is illegal. Go back and try again.";
    endif;
  elseif != $prevmoved P or != $moved P or != $prevdest $dest:
    die "Except for castling or pawn promotion, you may not move twice on the same turn.";
  endif;
elseif ...

This uses the variable $prevmoved for the previous value of $moved. Usually, $prevmoved will have the piece last moved by the opponent. This block of code will run if the piece in $prevmoved belongs to the player moving, which happens in a two-part move. In Chess, these would be castling or pawn promotion. In a castling move, $prevmoved will have the player's own King. Using this variable saved me from having to write code like I did for multi-move variants. If it's not a castling move, it returns an error unless it is a pawn promotion. This lets the code exclude other double moves. Note that this code would have to be tweaked for your game.

Finally, the Post-Game code should use stalemated2 instead of stalemated.


🕸Fergus Duniho wrote on Sun, Apr 3, 2022 08:38 PM UTC in reply to Jean-Louis Cazaux from 04:38 PM:

en-passant: a pawn on 7 should be able to take en-passant an opposed pawn that had moved 3 sq.

This is handled in the preset for Gross Chess. The Pawn functions and subroutines in the fairychess include file should handle it automatically if you set fps to 3.

promotion: only for captured pieces, a pawn on 9 cannot step on 10 if no piece is available.

The preset for Eurasian Chess can handle this. In the Pre-Move sections, it sets a value for wprom or bprom that is based on the currently captured pieces. Each variable should be set to the pieces that a Pawn may promote to. These variables are static for Chess but dynamic for Eurasian Chess. When it is empty, a Pawn may not move to the last rank. Here's what it looks like for Pre-Move 1 for White:

set wprom intersection keys capturedpieces array Q R B N C V;

🕸Fergus Duniho wrote on Mon, Apr 4, 2022 09:49 PM UTC in reply to Jean-Louis Cazaux from 07:27 PM:

Gross chess works fine for that. I can't see where is what I miss for Devingt.

You are using the chess2 include file instead of the fairychess include file. You should switch to the fairychess include file, because it is more up-to-date, and the new subroutines I mentioned to you are in that include file. To learn about what makes it different, you should check out the tutorial on the fairychess include file.


🕸Fergus Duniho wrote on Tue, Apr 5, 2022 03:49 PM UTC in reply to Jean-Louis Cazaux from 12:13 PM:

The fairychess include file is not a drop-in replacement for chess2. It introduces new paradigms on how to program a preset. One major difference is in the names of functions and subroutines. Instead of naming them after piece labels, they are now named after piece codenames. The tutorial gives details on this. I would recommend starting with a preset that already works with the fairychess include file and adapting it to work with your game.


🕸Fergus Duniho wrote on Wed, Apr 6, 2022 01:42 AM UTC in reply to Jean-Louis Cazaux from Tue Apr 5 07:56 PM:

I know what it's like to have other things to do. That's the story of my life. The best way to learn may be by example, using the tutorial only to explain things further. With that in mind, I have updated the Grand Chess preset with better organization and helpful comments to let you know what the code is for. Since there is no castling in Grand Chess, it won't help you with that, but it will help you get down some of the basics for creating a preset that uses the fairychess include file.


The Fairychess Include File Tutorial. How to use the fairychess include file to program games for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Thu, Apr 7, 2022 02:25 AM UTC:

I am currently in the middle of revising this tutorial. I have added a lot of new and updated content already, and the original material follows the revised text. I expect to continue it tomorrow.


Grotesque Chess. Play this variant of Capablanca's Chess that leaves no Pawns unprotected.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sat, Apr 9, 2022 06:34 PM UTC:

Grotesque Chess now has a new preset that uses the fairychess include file.


Aberg variation of Capablanca Chess. Play this variation on the Play-by-Email system![All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sun, Apr 10, 2022 02:42 AM UTC:

I replaced Tony Quintanilla's unprogrammed preset for this game with one programmed using the fairychess include file. By using subroutines that support castling as a two-part move, it allows two-part castling moves. By relying on Game Courier's ability to ask you to choose between multiple legal moves that match the move entered so far, it allows you to make two-part castling moves without the need to write them out by hand.


Game Courier Developer's Guide. Learn how to design and program Chess variants for Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sun, Apr 10, 2022 01:54 PM UTC:

This morning I was getting confused about what filename and rankname returned. I wanted to get the nth file or the nth rank from passing them numbers, but they only parsed coordinates and returned the file or rank name of that coordinate. So, I added the extra ability I needed to each function. If filename or rankname is passed an integer, and that integer is an array index for $file or $rank, it will now return the array value with that index. It will otherwise return an empty string. So, filename 0 will return a in Chess, and rankname 0 will return 1 in Chess.


Devingt Chess. Game Courier to play Devingt Chess, on a 10x10 board with Sages (=Camels).[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Tue, Apr 12, 2022 06:59 PM UTC:

I programmed this game today using the fairychess include file. While it was mostly a cut-and-paste job with some tweaking, I also had to fix bugs in Game Courier itself and the fairychess include file, because there were some issues with aliases that I hadn't accounted for.

I was previously wrong about needing to handle castling as a two-part move. I probably had that on my mind from working on code for that recently. Castling has been handled as a one-part move. I tested castling, en passant capture, and Pawn promotion, and it all seems to be working correctly now.


Devingt Chess. Decimal chess with 20 pieces per side including Sages (moving as Camels).[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Tue, Apr 12, 2022 07:09 PM UTC:

Is this the same game as Cardinal Super Chess? This was also a commercial game that used the same board, the same pieces, and the same setup.


🕸Fergus Duniho wrote on Wed, Apr 13, 2022 01:48 PM UTC:

I've noticed some differences between the photos and the diagram. In both the photos, a1 is a light square, but in the photos, it is a dark square. Additionally, the two photos do not have the same setup as each other, and neither one matches the diagram. The first one superficially appears to match the diagram, but it is from Black's perspective. That means the King is actually on the f file, and the Queen is actually on the e file. In the second photo, White's King and Queen have swapped places, giving the game rotational symmetry instead of mirror symmetry.


🕸Fergus Duniho wrote on Wed, Apr 13, 2022 10:45 PM UTC in reply to Jean-Louis Cazaux from 09:01 PM:

I don't have a set myself. David and Hans each had one, and Hans programmed a Java applet to play it that appeared on the website for the game.


🕸Fergus Duniho wrote on Thu, Apr 14, 2022 09:59 PM UTC in reply to Jean-Louis Cazaux from 09:34 PM:

Yes, certain ideas seem to reoccur more often to people thinking up new Chess variants. It's good to keep a public record of them so that people don't keep reinventing the same game. For example, several people separately reinvented Spherical Chess, and some versions differ from others by only a single rule.


🕸Fergus Duniho wrote on Fri, Apr 15, 2022 01:28 AM UTC in reply to Jean-Louis Cazaux from Thu Apr 14 10:51 PM:

I think I fixed that now. Try it again.


Chess 66. Board based on the 8x8 arrangement - with the difference that 66 fields are now available. (8x8, Cells: 66) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Fri, Apr 15, 2022 02:29 AM UTC:

If the bishop's 'color change' should take place in the course of the game, a color transfer must be able.

This doesn't read well. So I consulted the original German, which I had to type by hand, because your German version is a single graphic image. It reads:

Wenn im Verlauf des Spiels der Farbwenchsel des Laufers erfolgen soll, dann muss ein Farbtransfer stattfinden.

Google Translate turned it into this:

If the color of the bishop is to change during the course of the game, then a color transfer must take place.

This reads better, but it seems to be stating the obvious. In the German, you are trying to connect two nouns, Farbwenchsel and Farbtransfer, but in English, these nouns are broken up into pairs of words, and it would probably read better with verbs instead of nouns. So, I'll try this:

For the Bishop to change color, it must be able to transfer from squares of one color to squares of the other color.

I also changed the rest of the paragraph. Since it's late, I'll stop for now. It would be easier for me to work on this if I could copy the German text when I need a translation. Typing it while looking at a graphic image is more time consuming.


🕸Fergus Duniho wrote on Fri, Apr 15, 2022 12:51 PM UTC:

I made a few more edits. You use the word field a lot to refer to spaces. Is Feld the word for space in German?

While the concept behind this game seems interesting, I am not clear on the mechanics of movement. In your Knight diagram, it does not look like you have applied the rule for the Knight's movement consistently. The Knight on 5 is shown being able to move to g7, but 5 and g7 are on the same diagonal.

It is not clear to me what this diagram is illustrating:

image42


🕸Fergus Duniho wrote on Fri, Apr 15, 2022 05:40 PM UTC in reply to Gerd Degens from 01:37 PM:

I'm still not following how Bishop or Knight moves work. I think more procedural descriptions of how these pieces move would help.

In this diagram, it looks like the Bishop can move from b5 to b3 or from g4 to g6. Is that a correct interpretation? Step-by-step, how is the presence of transfer fields affecting the Bishop's moves?

image040


🕸Fergus Duniho wrote on Fri, Apr 15, 2022 08:23 PM UTC in reply to Gerd Degens from 06:12 PM:

Step by step: The bishop can change his diagonal. That's the point of this variant. From b5 to b3 or from g4 to g6 (and so on up/down the diagonal) means that the bishop has changed his diagonal.

When you said step by step, I was expecting a step by step explanation, but you didn't provide one. Could a Bishop move from d1 to e8 along the path d1-c2-b3-a4/4-b5-c6-d7-e8?


🕸Fergus Duniho wrote on Sat, Apr 16, 2022 02:15 AM UTC in reply to Bn Em from Fri Apr 15 11:40 PM:

Assuming ‘d4’ is a typo for ‘a4’,

Yes, and I made some other typos, which I have since corrected in the original.


🕸Fergus Duniho wrote on Sat, Apr 16, 2022 06:42 PM UTC in reply to Gerd Degens from 07:38 AM:

"Could a Bishop move from d1 to e8 along the path d1-c2-b3-a4/4-b5-c6-d7-e8?" (a4/4 is a typo, h5/5 is correct)

No, a4/4 is not a typo. It is sandwiched between b3 and b5, and h5/5 is on the other side of the board from these spaces.

Yes, that is possible, but only in two moves.

Okay, but here's what you wrote previously:

"In this diagram, it looks like the Bishop can move from b5 to b3 or from g4 to g6. Is that a correct interpretation?" Yes, that is the correct interpretation.

To be clear, my questions were about what a Bishop could do on a single move. If the longer move I described cannot be done as a single move, then I would presume that B b5-b3 is illegal for similar reasons. Or is there some asymmetry that allows one and forbids the other? I should ask, could either "B b4-b3" or "B b3-b5" ever count as a legal move?


Devingt Chess. Decimal chess with 20 pieces per side including Sages (moving as Camels).[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Apr 16, 2022 06:53 PM UTC in reply to Jean-Louis Cazaux from 06:38 PM:

Her game was already produced in the 90s, and if people don't know how to play it, they won't be playing it. Anyway, if these games happen to be identical, it looks like the Devingt Chess inventor will get the credit for the game, and the Cardinal Super Chess inventor will not. My experience, though, is that people who independently make similar games usually don't make identical games.


Chess with magical connections. Missing description (8x8, Cells: 64) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Apr 16, 2022 07:25 PM UTC in reply to Aleksandr Kostin from Sat Apr 2 07:10 PM:

This page is still lacking a written explanation of what magical connections are. You cannot depend upon diagrams to tell the whole story.


New Submissions for Review. A listing of all submissions still awaiting editorial approval.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Apr 16, 2022 09:36 PM UTC:

I changed this page to be sorted by CreationDate, because ModifiedDate has sometimes not been set.


Einstein Chess. Members-Only Playing with dice on the board, without adding any luck.[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.

Harban Chess. Members-Only A simple Game which attempts to simulate real war by mixing orthodox Chess, shatranj, and crazyhouse.[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.

Шахматы с волшебными полями. Members-Only Missing description[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.

Chess 66. Board based on the 8x8 arrangement - with the difference that 66 fields are now available. (8x8, Cells: 66) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sun, Apr 17, 2022 03:02 PM UTC in reply to Gerd Degens from 09:25 AM:

I have indeed trouble with your question. I don't understand how "B b4-b3" or "B b3-b5" has anything to do with a bishop's moves.

You may be familiar with abbreviated algebraic notation, such as Bb3, which would mean to move a Bishop to b3. This abbreviated notation depends upon knowledge of the position and knowledge of the rules. Without these, you don't know where the Bishop is, and if a player has more than one Bishop, you don't know which Bishop to move there.

Since Chess variants are played by a variety of different rules, it helps to use a generic rule-blind notation that can work equally well for different variants. The notation I used explicitly spells out a move in a manner that someone could follow without knowing the rules of the game in question. First of all, "B b4-b3" is a typo. I meant to write "B b5-b3", which means a move by the Bishop on b5 to b3. This is a possible move only if there is already a Bishop on b5, and whether it's a legal move depends on the rules of the game. In Miller's Spherical Chess, for example, it would sometimes be a legal move. Likewise, "B b3-b5" means a move by a Bishop on b3 to b5. It should now be evident what these have to do with Bishop moves.


🕸Fergus Duniho wrote on Sun, Apr 17, 2022 05:12 PM UTC in reply to Gerd Degens from 03:50 PM:

I think we've clarified that a Bishop cannot pass through a transfer field on its move. To switch color, it must stop on a transfer field, and then it may use its next move to switch to spaces of the other color.

My next question concerns which directions of movement are available to a Bishop on a transfer field. Let's say a Bishop is on a4/4. I presume it can move to a5, b5, c5, or c3, but it cannot move to a3. Likewise, a Bishop on h5/5 could move to h4, g4, f4, and g6 but not to h6. Is that correct?


🕸Fergus Duniho wrote on Sun, Apr 17, 2022 09:12 PM UTC in reply to Gerd Degens from 08:10 PM:

Can a Rook move through a switch on a single move? Which of these moves could be legal?

  • R a1-a8
  • R a1-b8
  • R a8-a1
  • R b8-a1

🕸Fergus Duniho wrote on Mon, Apr 18, 2022 09:28 PM UTC in reply to Gerd Degens from 08:04 PM:

I gather from the comments that my version is not easy to understand.

I don't know if it's that or if you just haven't explained it clearly.

But if I see it correctly, then there are no bugs in the variant and the set of rules is consistent.

With respect to the Bishop, you told me that it can occupy only 4 or a4 or only 5 or h5. I presume the same holds for other pieces. So, a Rook on one of these spaces would not command two files. Likewise, a Knight on one of these spaces could not move as though it were on the other space. However, that looks like what the Knight is doing in your example. It's on 5, and its ability to move to f4 or g3 makes sense in light of that. But its ability to move to e4, f6 and g7 would make sense only if it were on h5 instead of 5.


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 12:04 AM UTC:

I have begun to program Chess66 for Game Courier. So that 4 and 5 have separate file labels, I'm calling them A4 and H5 and distinguishing them from a5 and h5. I'm programming it with logical directions, which lets me define named directions as linked lists of nodes. The way directions are defined, the same direction cannot have two destinations from the same space. This means I've had to define additional directions to handle some lines of movement. However, the same direction can go from different spaces to the same destination.

One of the main difficulties I'm coming across is that sometimes it makes sense to treat A4 and a4 or H5 and h5 as separate spaces, and sometimes it makes sense to treat them as the same space. One idea would be to put an invisible dummy piece on the unoccupied space when the other one is occupied. That way, movement through a switch would be completely blocked.

At present, more work needs to be done to get the directions working properly.


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 02:06 AM UTC:

Since a Bishop that moves to 4 could immediately switch to a4, is the reverse also true? Could a Bishop moving to a4 immediately switch to 4? More generally, is switching between these spaces available for any piece or only for Bishops?


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 07:58 AM UTC in reply to Gerd Degens from 06:57 AM:

By what series of moves can a Bishop change to spaces of the other color?


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 01:02 PM UTC in reply to Gerd Degens from 09:15 AM:

Does that answer your question?

No, it does not. I specifically asked for a series of moves, and I didn't get that. What will answer my question is a series of moves in the generic rule-blind style of notation I used earlier. You do not have to write anything in English to answer this question.


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 04:08 PM UTC in reply to Bn Em from 01:52 PM:

The move sequences given by Gerd in his comment are B d1–4; B 4–b5 and B d1–5; B 5–g6.

So, I gather that the following are all legal moves:

  • B d1-4
  • B 4-d1
  • B e8-5
  • B 5-e8

I think I misread an earlier answer. This actually describes one move on black spaces and the other move on white spaces:

If the bishop is on 4, then his path goes via b5, c6, d7 to e8. In the other direction it goes via b3, c2 to d1.

So, it looks like the diagonal from 4 to the first rank is a different color than 4, and the diagonal that goes from 5 to the last rank is a different color than 5, and that is how the color changing is done.


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 04:11 PM UTC:

Suppose I have a Rook on d4. Could it move to 4? Or could it only move as far as a4? Likewise, could a Rook on d5 move to 5, or could it only move as far as g5?


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 05:50 PM UTC:

I'm testing my code for Chess66 on Game Courier right now, and with a Knight on a3, I currently have its legal moves as a5, c5, c4, c2, and b1. Because 4 is right above it, it looks like b5 could be another legal move by going over 4 and a5 and turning right to b5. It could be argued that this is illegal because there is a single-direction path from a3 to b5. But if that rules that out, it might also rule out a5 as a legal move, because there is a single-direction path to it through 4.

Chess66 Knight on a3


🕸Fergus Duniho wrote on Tue, Apr 19, 2022 10:00 PM UTC in reply to Bn Em from 09:23 PM:

En Bw

I assume you mean me? That's one correct letter out of four, with two more misplaced ;)

The other one was turned upside-down but left in place. So, they're all there with some mix-ups. :)


🕸Fergus Duniho wrote on Wed, Apr 20, 2022 02:18 AM UTC:

I'm done working on Chess66 for Game Courier today. The directions are looking good, but I still have to adapt the Pawns to work with switches, and I still have to prevent double occupancy of the switches. Since Firefox won't remember this after I shut down my computer, here are the moves I've been making to test things out. In the meantime, feel free to check it out, and apart from the issues I just mentioned I still need to work on, let me know if you find any illegal moves it permits or any legal moves it doesn't permit.

1. P c2-c4 
1... p f7-f5 
2. Q d1-A4 
2... q e8-H5 
3. Q A4-a7 
3... p f5-e4 
4. N b1-a3 
4... q H5-e5 
5. P c4-d5 
5... q e5-d4 
6. N a3-c5 
6... p e7-e6 
7. Q a7-a3 
7... b f8-e7 
8. N c5-A4 
8... b e7-g4 
9. P b2-b3 
9... b g4-H5 
10. P b3-b4 
10... q d4-b4 
11. Q a3-g3 
11... p g7-g5 
12. P d5-e6 
12... p g5-f4 
13. Q g3-h7 
13... r h8-h7 
14. N A4-d5 
14... b H5-g6 
15. N g1-h3 
15... n b8-c6 
16. N d5-a4 
16... b g6-h5 
17. N a4-c3 
17... q b4-c5 
18. P e2-e3 
18... b h5-h4 
19. P a2-a3 
19... q c5-h5 
20. N c3-a4 
20... q h5-h6 
21. N a4-c6 // - Check! -
21... p b7-c6 
22. N h3-f4 
22... q h6-e6 
23. N f4-h6 
23... q e6-d5 
24. N h6-f5 
24... n g8-h6 
25. N f5-c4 
25... b h4-e8 
26. P a3-a4

🕸Fergus Duniho wrote on Wed, Apr 20, 2022 03:30 PM UTC in reply to Gerd Degens from 06:32 AM:

According to my definition, the switch can only be operated from 'below'. After that, the move N c5-A4 would not be possible.

A switch is an overlapping pair of spaces that in some ways operate together as a single space. By their very nature, they operate as a switch only from a given direction. From below, a piece is given two choices for how to continue its vertical movement. However, this property of a switch is not a property of the individual spaces whose overlap constitutes the switch. So, restrictions on movement to A4 have nothing to do with your definition of a switch. They are simply arbitrary restrictions on movement.

There are already other examples of A4 being reachable from above. For example, a Rook or Queen on a8 could move to A4, and a Bishop or Queen on e8 could move diagonally to A4. You have also agreed that it makes sense to let it be reachable from the side.

I'm now going to propose some rule changes. Since the switch can make a piece more powerful, this should be balanced by making a piece using a switch more vulnerable. Allow pieces access to the spaces of a switch from any direction, and when a piece moves to a switch, allow capture of any piece on the switch even if the capturing piece moves to the other space. For example, if a Bishop is on A4, and a Rook moves to a4, consider the Bishop on A4 to be captured.

Currently, the Knight is the only piece whose powers of movement are restricted in the vicinity of a switch. Correct this by allowing a Knight to move to any space that can be reached by a step in an orthogonal direction followed by a step in an outward diagonal direction, or by a step in a diagonal direction followed by a step in an outward orthogonal direction. This is the normal definition for how a Knight moves in Chess and other variants, and it would allow the Knight to also increase its capabilities in the vicinity of a switch.

One last rule change I would suggest is to let Rooks, Queens, and Kings use their ability to move horizontally to switch between the spaces constituting the switch. This would basically involve lifting one more restriction on movement to the spaces making up a switch.


🕸Fergus Duniho wrote on Wed, Apr 20, 2022 04:59 PM UTC:

I have started writing up a brief summary of the rules to appear underneath the board for Game Courier.


🕸Fergus Duniho wrote on Wed, Apr 20, 2022 05:51 PM UTC in reply to Gerd Degens from 04:31 PM:

Move 17: N a4-c3 doesn't seem legal, but N a4-c2 would be legal.

It looks legal to me. Why wouldn't this move be legal? Meanwhile, a4 and c2 are along a diagonal, and N a4-c2 would definitely be illegal.

N a4-c3

Move 25: N f5-c4 doesn't seem legal in same way, but N f5-d4 would be legal again.

N f5-c4 is a perfectly legal Knight move, and I see no reason why it would be illegal. Meanwhile, f5 and d4 are diagonally adjacent, and N f5-d4 is clearly illegal.

N f5-c4

When you're examining the moves, be sure to click on Record, paste the moves into the box, and click on View. This will let you view each position. I think you made some wrong judgements, because you got confused about how notation for this game works. Vertical movement shifts to an adjacent file as it goes between the 4th and 5th ranks. So, the space immediately above d4 is e4, for example.


🕸Fergus Duniho wrote on Thu, Apr 21, 2022 12:01 AM UTC in reply to Gerd Degens from Wed Apr 20 07:07 PM:

"A switch is an overlapping pair of spaces that in some ways operate together as a single space."

From my point of view it looks different. The square a4 of a switch is an independent square and is completely identical to the square a4 in normal chess. 4 (A4) is a composite square consisting of a half and triangle part of a4 and the new triangle due to board geometry. The new square 4 (A4) gets the same play options as all squares of the game board - 4 (A4) is considered equal.

This means that the squares a4/4 (A4) must first be seen independently. These independent fields get an additional function when they work together and act as a switch, as described.

I didn't say anything different. We're in agreement that the spaces composing a switch are separate from each other. But since they cannot be simultaneously occupied, and occupation of one space blocks movement through the other, and they share a common edge and a common corner, they also function in some ways like the same space.

It is possible to agree on the sides from which the switch should be accessible. We have clarified access from below and from the side, access from above is also not a problem and is already part of my proposal. The only question is whether it is access to the switch as a unit or to the individual square of a switch. According to my intention, the second applies.

Agreed. Use of the switch as a switch is possible only from below. That is due to the nature of how it works. If a piece moves to a switch through a diagonal move or a Knight move, it will have to stop on the switch, which will prevent it from using the switch to alter the direction of its movement. The same is true if a Rook or Queen moves to a switch from the side. It will have to stop there, which will prevent its use as a switch. And if a Rook or Queen moves to a switch from above, it will have only one path through the switch. So, it won't be utilizing the switch as a switch. This shows that access to the spaces composing a switch is a completely different matter than using it as a switch.

"Allow pieces access to the spaces of a switch from any direction, and when a piece moves to a switch, allow capture of any piece on the switch even if the capturing piece moves to the other space. For example, if a bishop is on A4, and a Rook moves to a4, consider the Bishop on A4 to be captured."

As described, access to the switch from all sides is not a problem. It is possible to agree on the proposal, but it does not fit my intention. However, if the game becomes more playable and programmable - so what.

What I'm proposing fits with the rule that both spaces of a switch cannot be occupied at the same time and the rule that occupancy of either space blocks vertical movement through the switch even when that movement would technically be going through the other space in the switch.

To the Knight: I can't allow anything here, but I can say what my point of view is. If we stick to the fact that the squares of a switch should be seen separately, then knight moves ending on the same line are not possible. However, as the game becomes more playable and programmable, compromises should be possible.

We could just say that because of the way that switches affect the geometry of the board, some spaces may be reached by either a vertical move or a Knight move. This would also correct the injustice done to the Knight of making the weakest piece even weaker around a switch while it gives all other pieces greater mobility.

"One last rule change I would suggest is to let Rooks, Queens, and Kings use their ability to move horizontally to switch between the spaces constituting the switch. This would basically involve lifting one more restriction on movement to the spaces making up a switch. "

I have problems with that. I have emphasized that the squares of a switch represent independent squares. This would rather mean that moves between the squares of a switch are possible.

Precisely.

The independence of the squares on the one hand and the functionality of a switch on the other compete with each other. Regarding the direct change between the squares of a switch, I tend towards the superordinate function, so a direct change should not be possible.

Allowing a piece that can move horizontally to move from one space to the other in a switch as a normal move does not affect the functioning of the switch. While the piece is on either space, other pieces can't pass through the switch, and once the piece leaves the switch, pieces will be able to pass through it again.


🕸Fergus Duniho wrote on Thu, Apr 21, 2022 02:46 PM UTC:

During the night I changed my mind on one of my rule suggestions. I had proposed allowing capture of a piece on the occupied space of a switch when a piece moves to the unoccupied space of a switch. This was to fit in with rules regarding no double occupancy of switches and blocking any movement through the switch when one space in it is occupied. These happen to be the most difficult rules to program, and I don't think they're really essential to the concept of a switch. So, I'm going to program a stripped-down version of Chess66 that I'll call Reroute66. This will treat each space as a fully separate space, and the main feature of a switch that I'll retain is that spaces in the switch share some routes to and away from them, and movement from the narrow end can go in either of two different directions. I'll get to work on it later in the day.


🕸Fergus Duniho wrote on Thu, Apr 21, 2022 11:27 PM UTC in reply to Bn Em from 07:38 PM:

As I understand it, Fergus has decided to program a variant based on yours, and given it a different name to signal that it's not the same game.

Exactly this.

This game differs from yours only in that both a4 and 4, or both 5 and h5, can be occupied/passed through simultaneously.

There are some other differences. Here's a link: Reroute66. The rules are described below the board. I'll add individual piece descriptions to the rules later.

I'll admit I find it a little odd that such conditionally untraversible squares should be so difficult to implement (couldn't it be done with uncapturable dummy pieces that appear and disappear as the other square is occupied and vacated?)

That's the solution I already proposed. But I also think these rules are not essential to the core concept of the game, and I wanted to start with a variant that does not include them.


🕸Fergus Duniho wrote on Fri, Apr 22, 2022 02:08 AM UTC in reply to Gerd Degens from Thu Apr 21 07:12 PM:

Does that mean my variant is history? Or have I misunderstood something?

No, it means I am working on my own variant instead of putting pressure on you to change yours. You're free to go with the rules you want for your game. I'll see what I can do about programming it once you have settled on the rules and have described them clearly.


🕸Fergus Duniho wrote on Fri, Apr 22, 2022 04:39 AM UTC in reply to Gerd Degens from Thu Apr 21 07:12 PM:

the main feature of a switch that I'll retain is that spaces in the switch share some routes to and away from them, and movement from the narrow end can go in either of two different directions."

I'm sorry, but I didn't understand that.

I mean I am retaining the geometrical properties of the switches, but I am discarding the other rules regarding them.


🕸Fergus Duniho wrote on Fri, Apr 22, 2022 01:28 PM UTC in reply to Gerd Degens from 08:54 AM:

From the questions and expressions of confusion you got regarding what the rules are, it should be evident that you have not described them clearly enough. Also, you seemed to change your mind about some details in the comments. So, you should rewrite your rules to reflect anything you have changed your mind on and to supply the details that someone would currently have to read the comments to find out about.


🕸Fergus Duniho wrote on Fri, Apr 22, 2022 01:45 PM UTC:

Here's are some guidelines to use in revising your description of the game.

  1. The rules should be made entirely clear in the written text. Illustrations should be used to illustrate what the text has already said, not to provide additional information that is not written down.

  2. The text should describe not only what can be done but how to do it.


Game Courier History. History of the Chess Variants Game Courier PBM system.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Fri, Apr 22, 2022 10:32 PM UTC:

Small palette board images with fewer than 256 colors that use the default colors can now be recolored like automatically generated boards. When the developer or user has chosen a different color than one of the default colors, the default color will be replaced by the new color in the image. For this to work, the original image must use the default colors, which are 339933, CCCC11, and 22BB22.


Chess 66. Board based on the 8x8 arrangement - with the difference that 66 fields are now available. (8x8, Cells: 66) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Tue, Apr 26, 2022 06:37 PM UTC:

I have been working behind the scenes to get Game Courier and the drawdiagram.php script to display images better. They can now recolor loaded images for the grid shape, and they can display coordinates above selected boards, which is important for Chess66, because it helps dispell the illusion that a vertical line of movement begins and ends in the same file. Here is the closest it can now come to the diagram that appears in the article. I suppose I should work on options to recolor the pieces, since what I'm doing for this diagram is using a piece set with four colors of pieces and using different labels for all of the Red pieces.

Chess66 Diagram

🕸Fergus Duniho wrote on Wed, Apr 27, 2022 04:21 AM UTC:

I'm looking at the diagrams on my Likebook Mars at night, and on its monochrome e-ink screen, I cannot tell apart the red and blue pieces in the diagrams. At best, they are slightly different shades of black. In the diagram I made, the red pieces, which belong to White, appear even darker than the blue pieces, which belong to Black, which is opposite to how they should look in black and white. For the sake of accessibility for color-blind people and people using e-ink displays or black and white printouts, piece colors with more light/dark contrast would be more suitable.


Game Courier. PHP script for playing Chess variants online.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Thu, Apr 28, 2022 01:05 AM UTC:

Today I've been working on allowing players to change piece colors when the board is displayed as an image. Recoloring is not available for boards rendered as tables or with CSS. It works best for the Abstract pieces, because they are the simplest in design. It also works for Alfaerie, Magnetic, and Motif pieces, but the greater detail of these pieces makes a perfect recoloring job more difficult. For the new Alfaerie pieces, there is one more issue. It has to convert them into 256 color palette images before recoloring them. So, they don't look quite as good as the unrecolored images. As long as you don't change the color, the pieces will not be recolored, and they will look as they normally do. I plan to work on this more tomorrow, but for now, I have copied my work to the main server to keep it from being overwritten by the backup at midnight.


Design Contests[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Thu, Apr 28, 2022 01:43 AM UTC:

In the past, we had design contests featuring a number of spaces that corresponded to Hans Bodlaender's age. The last of these was 20 years ago when he was 42. Since then, we haven't done any more, because it is a lot of work. But maybe we should do some more since they do help encourage creativity. Since I'm younger than Hans, we could use my age to get some of the board sizes we've missed. I turned 55 on Saturday. It's also significant, given that Hans is from the Netherlands, and this site is physically located in the Netherlands, that the King of the Netherlands turned 55 today. And since we can't say for sure that we will be running a design contest in 7 years, we could do 55 and 62 together as a 55 or 62 space design contest.


Game Courier. PHP script for playing Chess variants online.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Thu, Apr 28, 2022 08:52 PM UTC:

The recoloring of pieces is working very well now. Even with the Alfaerie pieces, it looks like they were originally the color they were recolored to. For some sets, there are some glitches when trying to recolor the black pieces as white, but that's usually something no one will want to do.


🕸💡📝Fergus Duniho wrote on Sat, Apr 30, 2022 02:32 AM UTC:

I turned the code for recoloring pieces into a function, and I added the ability to recolor pieces to the circular and spherical boards and to the Diagram Designer. But I still need to do some work on the forms.


🕸💡📝Fergus Duniho wrote on Sat, Apr 30, 2022 03:02 AM UTC:

I modified the showpiece.php script to change the color of the piece. This may later be used with the Table and CSS rendering methods to recolor the pieces, and I may modify the pc shortcode to include a color option. Here's a violet King.


🕸💡📝Fergus Duniho wrote on Sat, Apr 30, 2022 01:29 PM UTC in reply to H. G. Muller from 07:42 AM:

It works with the Alfaerie set. To work, it has to know the primary color of the piece. This is stored in the variable $originalwhite or $originalblack, and the value of each variable must match a color actually used in the image. I have set their values in the main body of the code for Abstract, Alfaerie, Magnetic, and Motif pieces, and I have set their values in individual set files for some other sets. I have thought about adding code that would identify the most common foreground color in each piece image, as it already goes through each image pixel by pixel to get the color indexes, but I'm not sure if this would be appropriate for some pieces, such as pieces with textured coloring from photographs.


🕸💡📝Fergus Duniho wrote on Sat, Apr 30, 2022 09:51 PM UTC in reply to H. G. Muller from 08:55 PM:

But the anti-aliasing causes pixels on the boundary of the black outline and the colored interior to be darker versions of the interior color, by mixing in the black. So simply looking for an exact match of the original color fails to replace the boundary pixels.

I already took that into consideration.

This problem can be solved, though: you could test every pixel for the value of the brightest RGB component, and deduce from that by which factor it is darkened compared to the interior color. And then darken the replacement color by the same factor.

Here's what I'm doing. I collect all the color indexes. For each color index with a non-zero alpha value, I make a determination of whether it belongs to the outline of a piece or to its coloring. I do that with this conditional:

if (color_diff(array($cv["red"], $cv["green"], $cv["blue"]), $original) 
<= color_diff(array($cv["red"], $cv["green"], $cv["blue"]), "black")*2) {

The color_diff function returns the greatest difference between one color's minimum component value and the other one's maximum component value. I added the *2 to prevent some errors, and that part now seems to be working well. If it belongs to its coloring, I recolor each RGB component with this function:

function recolor_component_as ($originalvalue, $currentvalue, $newvalue) {
    if ($originalvalue == 0)
        return $newvalue;
    return min(255,round($newvalue*($currentvalue/$originalvalue)));
}

One remaining problem is that when I try to color the Black pieces white, I get an aquamarine fringe around the Black Motif pieces. In this case, $originalvalue will be 255 for the red component and 0 for the green and blue components, and $newvalue will be 255 for all three components. So, it recolors some edge pixels with positive values for green and blue but with 0 for red, resulting in aquamarine. So, I might have to factor in the value of each component when deciding how to recolor each component. But when I tried that earlier, I got some undesirable results.


🕸💡📝Fergus Duniho wrote on Sat, Apr 30, 2022 10:03 PM UTC in reply to H. G. Muller from 08:55 PM:

But the anti-aliasing causes pixels on the boundary of the black outline and the colored interior to be darker versions of the interior color, by mixing in the black. So simply looking for an exact match of the original color fails to replace the boundary pixels.

I already took that into consideration.

This problem can be solved, though: you could test every pixel for the value of the brightest RGB component, and deduce from that by which factor it is darkened compared to the interior color. And then darken the replacement color by the same factor.

Here's what I'm doing. I collect all the color indexes. For each color index with a non-zero alpha value, I make a determination of whether it belongs to the outline of a piece or to its coloring. I do that with this conditional:

if (color_diff(array($cv["red"], $cv["green"], $cv["blue"]), $original) 
<= color_diff(array($cv["red"], $cv["green"], $cv["blue"]), "black")*2) {

The color_diff function returns the greatest difference between one color's minimum component value and the other one's maximum component value. I added the *2 to prevent some errors, and that part now seems to be working well. If it belongs to its coloring, I recolor each RGB component with this function:

function recolor_component_as ($originalvalue, $currentvalue, $newvalue) {
    if ($originalvalue == 0)
        return $newvalue;
    return min(255,round($newvalue*($currentvalue/$originalvalue)));
}

One remaining problem is that when I try to color the Black pieces white, I get an aquamarine fringe around the Black Motif pieces. In this case, $originalvalue will be 255 for the red component and 0 for the green and blue components, and $newvalue will be 255 for all three components. So, it recolors some edge pixels with positive values for green and blue but with 0 for red, resulting in aquamarine. So, I might have to factor in the value of each component when deciding how to recolor each component. But when I tried that earlier, I got some undesirable results.


🕸💡📝Fergus Duniho wrote on Sun, May 1, 2022 01:53 AM UTC:

In modifying the form for customizing the appearance of the board for an ongoing game, all form elements were disabled, and it took me a while to figure out what to do. That clued me in that it wasn't working in an intuitive manner. So I changed how it works. Instead of expecting you to choose the Custom theme before you can change the appearance of the game, any change to a form element for changing the appearance automatically changes the theme to Custom. As long as your theme remains set to Custom, the changes you make will be accepted. If you change your theme after starting to make custom changes, it will go with the theme and ignore the other values you set for changing the appearance. I added fields for choosing the color of Black and White pieces. However, I have not integrated these into themes.


🕸💡📝Fergus Duniho wrote on Sun, May 1, 2022 04:10 PM UTC:

I found some functions for converting between the RGB and HSL color spaces, and using them got rid of the problems I was having with making the Black Motif or Magnetic pieces white. However, using them to make the Black Alfaerie pieces white would turn them grey, and trying to make White pieces grey would leave them white. To avoid these problems, I had the function choose between the old RGB recoloring method and the new RGB->HSL->RGB recoloring method based on the relative luminosity of the two colors and on whether it was converted from a true color image. If the new color has a higher luminosity, and it was not converted from true color, it will use the new method. Otherwise, it will use the old method. In my tests, this seems to be working out for the Abstract, Alfaerie, Magnetic, and Motif pieces.


Sign in to the Chess Variant Pages. Sign in to the Chess Variant Pages.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, May 2, 2022 06:03 PM UTC in reply to Máté Csarmasz from Wed Apr 20 07:51 AM:

All that verification checks is whether you can receive our email. If you can't, then marking your account as verified won't fix that. If you really want to receive emails about your moves, I recommend using a Yahoo account, as it accepts our emails better than Gmail does.


Lion (2). Moves on queen-lines but must jump exactly one piece. Appears in fairy chess problems.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, May 2, 2022 09:16 PM UTC:

Judging by the diagram, this is the Korean version of the Leo, which combines the Cannon and Vao from Chinese Chess.


🕸📝Fergus Duniho wrote on Mon, May 2, 2022 10:00 PM UTC:

I have now updated this page.


Very Heavy Chess. A lot of firepower with all compounds of classical chess pieces.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, May 4, 2022 04:33 PM UTC in reply to Jean-Louis Cazaux from 08:56 AM:

There are a few problems with the name Popess:

  1. Unless you're counting Pope Joan, there has been no such thing.
  2. Presumably, there would be only one Popess if there were one, because it would be a female Pope, but your game gives each player two of them.
  3. The word derives from a word meaning father. Presumably, the word for a female equivalent of a Pope should derive from a word for mother.

Here are some possible alternatives:

  • Mother Superior - the highest rank reached by nuns in the Catholic Church.
  • High Priestess - a common term for a high ranking female cleric, and it is used in the major arcana of the Tarot.
  • Bokononess - a made-up word formed from the name of a fictional religion portrayed in Kurt Vonnegut's novel Cat's Cradle.

🕸Fergus Duniho wrote on Wed, May 4, 2022 07:10 PM UTC:

Another suggestion I would make is Baroness. It has the B for Bishop, the N for Knight, and while it lacks a K, it is a royal title, and it has an R for roi, the French name for the King.


🕸Fergus Duniho wrote on Thu, May 5, 2022 12:28 PM UTC in reply to Greg Strong from 08:12 AM:

The drug is heroin. Heroine is the feminine form of hero, but its usage has become less common.Supergirl used to be called a superheroine, and now she and other superheroines get called superheroes. My main issue with the name heroine is that it is kind of generic.

I don't know what a Pythia or a Pythoness is, but the latter brings to mind a lamia rather than something religious.


🕸Fergus Duniho wrote on Thu, May 5, 2022 01:04 PM UTC in reply to Jean-Louis Cazaux from 06:06 AM:

In general, hierarchical Christian religions of the sort that have bishops do not have very high ranking positions for women. So, if you want a piece that is a high-ranked female religious figure that fits with bishop, you're not going to find one. Alternatives include using a neologism like Cardinaless or abandoning one of your requirements for naming the piece. Mixing religious titles from very different religions doesn't work well, because Christianity, from which we get bishops, doesn't easily mix with other religions. Diagonal moving pieces do not always have religious names. For example, the Queen moves diagonally but doesn't have a religious name.


Glinski's Hexagonal Chess. Chess on a board made out of hexagons. (Recognized!)[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Fri, May 6, 2022 03:29 AM UTC in reply to Daniel Zacharias from Thu May 5 08:17 PM:

This is probably related to some changes I made to the formfields_customization.php script for something unrelated to hexagonal chess. I got it to use the vhex shape again, but when I do, the pieces are misaligned with the CSS board, and the board appears misshapen when it is automatically drawn as an image. So, something else is going wrong. Since it's late, I'll look into this further tomorrow.


🕸📝Fergus Duniho wrote on Fri, May 6, 2022 04:21 PM UTC in reply to Daniel Zacharias from Thu May 5 08:17 PM:

I now see that you were using the unprogrammed preset that actually uses a custom grid rather than the vhex shape. So, I was going in the wrong direction when I tried to make it use the vhex shape. So, the problem is different than I thought it was, and I will have to start over. In the meantime, I have reverted it back to the custom grid shape.


🕸📝Fergus Duniho wrote on Fri, May 6, 2022 05:01 PM UTC in reply to Fergus Duniho from 03:29 AM:

There was a typo in a new bit of code that was preventing you from selecting CSS as your rendering method. For some reason, this preset works only with CSS, and it will not work if you try to display the board as a GIF, PNG, or JPG image. I repaired your log so that it uses CSS again, and you can now continue your game.


🕸📝Fergus Duniho wrote on Fri, May 6, 2022 08:31 PM UTC in reply to Daniel Zacharias from Thu May 5 08:17 PM:

I took some steps to prevent the image from tiling, and now it will also work with the GIF, PNG, and JPG rendering methods.


Very Heavy Chess. A lot of firepower with all compounds of classical chess pieces.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, May 7, 2022 04:53 PM UTC in reply to Bn Em from 04:15 PM:

but as Jean‐Louis notes, if we can have two Sissas…

Sissa is a name borrowed from a person's name, in this case a mythical inventor of Chess. Presumably, the piece is not understood to be this very mythical inventor of Chess but is just named in his honor. This is different than a title for a rank that is allowed to only one person at a time within a given hierarchy.


Sign in to the Chess Variant Pages. Sign in to the Chess Variant Pages.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, May 16, 2022 06:16 PM UTC in reply to Gerd Degens from Sun May 15 04:23 PM:

When I tried to test the script for verifying email with my Yahoo address, I never got the email. Looking at email sent to chessvariants.com, I see an email about being unable to deliver this email. It will keep trying until it is five days old, which will be on the 18th. There is a similar email for you, as well as a subsequent one about your email being returned. It is looking like Yahoo Mail has stepped up its spam blocking, which is also blocking even more legitimate mail. Since this server runs on a VPS with a fairly unresponsive hosting company, I'm not sure what to do about improving our mail delivery. That is why I no longer require email verification for creating an account.


🕸📝Fergus Duniho wrote on Mon, May 16, 2022 06:29 PM UTC in reply to Máté Csarmasz from Fri May 13 08:33 PM:

I can receive emails from the site just fine. The problem is there's no way to get it verified.

Although I couldn't receive the required email, I cheated by looking at the undelivered email sent to chessvariants.com. Using the code provided in that email, I was able to verify my email address after I fixed some bugs in the change_password.php script. Basically, I had misnamed some columns by reversing the order of the two words composing their names. So, if you can get the email, you should now be able to verify your address.


99 comments displayed

EarliestEarlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.