Check out Grant Acedrex, our featured variant for April, 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 ]

Comments by FergusDuniho

LatestLater Reverse Order EarlierEarliest
Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Fri, Jan 17, 2020 09:25 PM UTC:

I left out a semicolon when I updated the timeleft.php file earlier. So I fixed that and changed the time it discounts for the latest interruption to 6 hours.


🕸📝Fergus Duniho wrote on Fri, Jan 17, 2020 07:11 PM UTC:

I found the site down this afternoon and booted it back up. Since the last move had been made almost four hours ago, I modified Game Courier to take off four hours from any move interrupted by this downtime.


🕸📝Fergus Duniho wrote on Mon, Jan 13, 2020 02:24 PM UTC:

I found the site down this morning, and when I booted it back up, the last log was over 18 hours ago. So, I modified Game Courier to take 19 hours off the time for any move interrupted by this downtime.


Metamachy. Large game with a variety of regular fairy pieces.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Jan 11, 2020 08:27 PM UTC:

That's now fixed. The function was testing whether a rankname equalled a filename, which would always return false. It was supposed to compare the ranknames of two coordinates.


MZchess-with-pawns[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, Jan 8, 2020 08:04 PM UTC:

The directory /membergraphics/MZchess-with-pawns/ does not exist. There is also no file called chesswithpawns.zip anywhere on the website.


Games for Game Courier. The many games you can play online with Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Wed, Jan 8, 2020 07:38 PM UTC:

Pages have authors, not inventors. Someone who programs a preset counts as an author. The inventor exclusively refers to the game inventor.


The birth of two variants: Apothecary chess 1 & Apothecary chess 2[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Sat, Jan 4, 2020 05:28 PM UTC:

That's correct. Thanks for saving me the trouble, Greg.


Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Fri, Jan 3, 2020 02:32 AM UTC:

It looks like the site was down over 11 hours today. I have programmed Game Courier to give an extra 12 hours to anyone whose move was interrupted by this downtime.


Gross Chess. A big variant with a small learning curve. (12x12, Cells: 144) [All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Mon, Dec 30, 2019 08:20 PM UTC:

It checks if a Pawn is on the destination space and if only one move has been made on the present turn. If these conditions are met, it tries to complete the move by asking what to promote the Pawn to.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Fri, Dec 27, 2019 04:31 PM UTC:

It's not so much that it was based on code for Chess. Rather, it was based on code that had been adapted to handle en passant for initial pawn moves that are longer than two spaces. Since this game allows pawns unlimited double-moves instead, en passant had to be handled differently. Either way of handling en passant is compatible with Chess, but en passant has to be handled differently in Omega Chess than in Metamachy.


🕸Fergus Duniho wrote on Thu, Dec 26, 2019 11:26 PM UTC:

That's now fixed. The original code was based on Chess, which didn't allow en passant from multiple ranks. I replaced the requirement that the capturing pawn cannot move into or beyond the enemy's pawn rank with the requirement that the capturing pawn must be moving from the same rank as the double-moved pawn just moved to.


🕸Fergus Duniho wrote on Thu, Dec 26, 2019 05:53 PM UTC:

Can you show me a sample game that ends in a position in which an illegal en passant is allowed?


Caïssa Britannia. Play this British-themed game with royal Queens plus Lions, Unicorns, and Dragons.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Wed, Dec 25, 2019 07:13 PM UTC:

It looks like someone tampered with the set file it was using, replacing the Lion pieces with HalfDuck pieces. I have now corrected this.


Is there a way to know before accepting a challenge what time requirements the game will have?[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Tue, Dec 17, 2019 04:20 PM UTC:

I have now added a message to that effect.


About Game Courier. Web-based system for playing many different variants by email or in real-time.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sat, Dec 14, 2019 07:38 PM UTC:

I didn't. I modified one script to make the appropriate adjustment when someone opens a log with Game Courier.


🕸💡📝Fergus Duniho wrote on Sat, Dec 14, 2019 05:54 PM UTC:

Note that what you did doesn't actually extend anyone's time. It just affects what is seen on the Logs page. The time that is left for any game is determined by Game Courier through calculations that involve the values of the various time control parameters, which are all stored in individuals logs, not in the database.


🕸💡📝Fergus Duniho wrote on Sat, Dec 14, 2019 01:17 PM UTC:

To save on server load, the Logs page bases its calculations of time left on pre-calculated figures stored in the database. In the old days, it used to load every logs file and use the same algorithm as Game Courier itself used. But this increased the server load so much that we got kicked off of shared hosting and had to put this site on a VPS. The downside to not doing this is that when the site is down for some time, the Logs page reports inaccurate calculations of how much time is left. Because it can now be inaccurate, the Logs page is no longer in the business of ending games with expired time. That is left up to Game Courier itself, which remains more accurate than the Logs page.


🕸💡📝Fergus Duniho wrote on Sat, Dec 14, 2019 12:59 AM UTC:

The first thing I did after getting the site back online was modify Game Courier to add 11 days to any game interrupted by the downtime.


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 Wed, Nov 27, 2019 04:17 PM UTC:

It looks like the documentation for copyfn had been incorrect. It had said the new name could go on the left. But like with copy, the new name goes on the right, and the name of what is being copied goes on the left. Since this is how I prefer it to work, I'm glad the mistake was in the documentation, not in the code for the command. That means I can correct the documentation without breaking any code.


Games on Game Courier. A listing of Chess variants for Game Courier, ranked by number of times played.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Tue, Nov 26, 2019 06:38 PM UTC:

I got some new ideas for how to make it easier for non-programmers to make programmed presets. I have abandoned fairychess1.txt in favor of fairychess.txt, which I'm using with the fairychess Chess preset. Instead of using functions with the names of piece labels, it uses functions with the names of pieces. Instead of defining functions with the names of piece labels, someone using this include file would just set varables to the names of pieces. These variables would be used as references to the functions. The main things left to do are to add functions for more pieces and to write some documentation and a tutorial on how to use it.


🕸📝Fergus Duniho wrote on Sun, Nov 24, 2019 09:44 PM UTC:

In line with what I was talking about earlier, I've begun work on a new include file called fairychess1. It is designed to work with the Abstract1 and Alfaerie1 piece sets, which include images of the same pieces. I noticed that these sets included the Vao without the Cannon, which seems pointless. I don't want to break old games, but I might consider replacing the Vao in these sets with some other piece. I still have to adapt copies of the Pawn code for Berolina Pawns, but the others were easy enough to do.


🕸📝Fergus Duniho wrote on Sun, Nov 24, 2019 05:46 PM UTC:

Game Courier originally started out without any support for rule-enforcement. It offered a way to play games by email by generating diagrams from FEN strings that could be included in URLs. When I started working on what became GAME Code, I started with commands for automating some tasks, such as moving captured Shogi pieces off the board. In time, it became a programming language with the ability to be used for rule-enforcement. Because of the way that the language was added into Game Courier, it always remained optional rather than required. Besides that, some games could be too complicated to program, and using Game Courier just as a dumb board server would allow them to be played despite that. It also turned out that some people were a lot more interested in creating and trying out new variants than they were in programming, and they went ahead and created lots of presets without any programming.

As a programmer, my own preference has been for programmed presets. H. G. is also a programmer and might feel similarly as I do about the advantages of having programmed presets. I do want to make it easier to create programmed presets, but I also consider it important to still allow unprogrammed presets. This precludes the option of putting default code in presets. However, it could be helpful to have a GAME Code include file that includes default functions for a wide variety of common pieces. Another thought is to write new include files to require some values to be set before they are included. By require, I mean they would exit with informative error messages if any of these values were not already set. This would give programmers who include them reminders about what values might need to be set differently than for Chess.

This would still require some willingness to do programming, but it would at least make it easier.


🕸📝Fergus Duniho wrote on Sat, Nov 23, 2019 05:53 PM UTC:

We have had some very active non-programmers making presets. While this page won't tell you which are programmed, you can go to /play/pbm/settings.php to get some idea of that. If interested programmers want to program games that haven't been programmed yet, that would be very helpful.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Fri, Nov 22, 2019 05:09 PM UTC:

That it takes so much effort even by seasoned chess programmers to create a rule-checking preset for a variant as simple as Symmetric Chess firmly puts us in the category of 'backward websites'.

That's alarmist thinking. Greg may be seasoned in C and C#, but he's still less experienced with GAME Code, which happens to be a very different language.

We really should have some kind of wizard for this, where people that cannot program at all would have no trouble to create such a preset. E.g. something like the Design Wizard for Interactive Diagrams I put in the article on those.

Non-programmers can already create presets, and even with limited programming knowledge, someone can create a programmed preset for many games by copying code from others and making a few tweaks. Thanks to this, there are presets for over 1300 games.

Where you just have to take a minute or so to specify board dimensions and size of promotion zone, pick a preferred graphics theme, tick a number of pieces in a list of standard types (or, very rarely, pick an image and specify a non-standard move for it by hand), drag the pieces to their initial locations on an empty (a specified symmetry taking care of you having to do that for only one member of each type), and you are done.

None of that was anything Greg needed a wizard for. The hold-up was in programming the Bishops Conversion rule, and in trying to do that, he learned more about how the language works. I already knew how to program it myself, but I intentionally left Greg the exercise of figuring it out, because I trusted he could handle it, and doing it himself would help him learn the language better.

If the wizard produces the usual game code, (just as that for the Interactive Diagrams produces the HTML), it will remain possible to take care of any features not suported through the wizard by editing the automatically generated game code later. But this should be needed only very rarely.

Like, for example, in Symmetric Chess, because the Bishops Conversion rule wasn't already programmed.


Home page of The Chess Variant Pages. Homepage of The Chess Variant Pages.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, Nov 18, 2019 07:01 PM UTC:

The old version was probably still cached. I have purged it from the cache for you.


Chess Variant Inventors. Find out which inventors have the most games listed here.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, Nov 18, 2019 04:13 PM UTC:

BTW, it seems my productivity is overrated in the list above: it says I invented 13 variants, but it attributes Wa and Tenjiku Shogi to me, while these are just historic Japanese games for which I made a rule-description page. (I also made such pages for Chu, Dai, Dai Dai and Maka Dai Dai Shogi, Paco Shako and Metamachy, but these were (justly) not attributed to me.) It also counts my article on FairyGen as a game invention, while this is just a description of a piece of software for generating End-Game Tables involvng fairy pieces.

It's now down to ten. I took care of the two Shogi variants, and FairyGen already wasn't listed.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Mon, Nov 18, 2019 01:17 AM UTC:

Here are some optimized versions of the B and b functions:

def B 
== #0 c1 
and flag wccanconvert 
or and == #0 g1 flag wgcanconvert
and checkleap #0 #1 1 0
and empty #1 
or and checkride #0 #1 1 1 or color #0 nor flag wcmustconvert flag wgmustconvert;

def b
== #0 c8 
and flag bccanconvert 
or and == #0 g8 flag bgcanconvert
and checkleap #0 #1 1 0
and empty #1 
or and checkride #0 #1 1 1 or not color #0 nor flag bcmustconvert flag bgmustconvert;

These do the regular Bishop move first, because that's what the Bishop will do most of the time. This can be done when neither mustconvert flag is set or when the Bishop is on the opposite color from the one it starts from. So, if a White Bishop is on a dark square (color = 1), or a Black Bishop is on a light square (color = 0), it can move as a Bishop. Testing for color #0 is quicker than testing for == color #0 1, and testing for not color #0 is faster than testing for == color #0 0, though they are a little bit more obfuscated. With regular Bishop moves out of the way, the function uses a series of breaking conditions to test whether a conversion move is possible. It first tests for conditions common to both conversion moves, testing for the less expensive one first. Also, given that these functions will frequently be used in testing whether a Bishop is attacking a King, including empty #1 as the first condition of the conversion move saves it from the trouble of checking for anything else when used for that purpose. It then tests whether it is legally converting from the g square, and if not, it uses a series of breaking conditions to test whether it is legally converting from the c square.


🕸Fergus Duniho wrote on Sun, Nov 17, 2019 03:43 AM UTC:

These look like they will work, but they could be optimized better. They repeat the same operations multiple times, and they don't evaluate the most common type of move first. Also, the first or in each, which is the one to be evaluated last, is unnecessary.


🕸Fergus Duniho wrote on Sun, Nov 17, 2019 01:36 AM UTC:

I don't know exactly what the issue is (and there could be more than one) but part of it seems to revolve around the fact that the rules for Bishop moves are complicated, and I've codified them nicely in subroutines "B" and "b", but the architecture seems to want the 1-line fn defs, which don't seem to support if-then-else, and my attempts to have a def B pass off to a gosub B doesn't seem to work either.

I tried out your Symmetric Chess preset. The conversion rule seems to be enforced correctly, but conversion moves are not displaying as legal moves, and when a Bishop must convert, it is incorrectly displaying illegal moves as legal. As you correctly surmise, this is because you do not have the b and B functions defined.

While functions do not support if-then-else, as such, they do support cond, which works like the ? and : operators. They can also use and, or, nand, nor, onlyif, and unless. You can look at the functions for other divergent pieces, such as the Pawn or the Cannon, for examples of how to handle this. Here are some examples from chess3. If you understand the logic behind these, you should be able to figure out how to handle the Bishops conversion rule.

def C cond cond empty #0 capture (not empty #1) (checkhop #0 #1 0 1) (checkride #0 #1 0 1) and #1;

def P
remove var ep
and < rankname #1 var bpr
and < rankname var ep rankname #1
and == filename var ep filename #1
and checkleap #0 #1 1 1
or and checkride #0 #1 0 1 == rankname #0 var wpr
or checkleap #0 #1 0 1
and empty #1
or and islower space #1 checkleap #0 #1 1 1
and <= distance #0 #1 var fps
and > rank #1 rank #0;

Remember that Game Courier evaluates functions from right to left, and many of the logical operators will work with either one or two operands. In the Pawn example, the logical operators are normally taking only one operand. When and receives a lone true value, it lets the function continue silently, but if it receives a false value, it returns a false value and exits. When or receives a lone false value, it lets the function continue silently, but if it receives a true value, it returns a true value and exits. If you still need more help, just ask.


Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Nov 16, 2019 05:29 PM UTC:

Since you brought up the rule in Shogi against checkmating a King in Shogi with a Pawn drop, I checked how I handled it in Game Courier. I handled it similarly. After checking for checkmate in the Post-Game code, my code checks whether the checkmate was due to a Pawn drop, and if it was, it reports an illegal move instead of concluding the game.


Caïssa Britannia. British themed variant with Lions, Unicorns, Dragons, Anglican Bishops, and a royal Queen. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sat, Nov 16, 2019 05:19 PM UTC:

Done, and I moved the ASCII diagram to the ALT text of the image.


Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Fri, Nov 15, 2019 04:16 PM UTC:

Is there any French speaker here who can provide an accurate English translation of this? Google translate is not good enough to make it clear.

Les échecs marseillais sont une variante du jeu d'échecs où chaque joueur joue deux coups à la suite. En plus des règles du jeu normales, les joueurs doivent respecter les règles suivantes :

  • Un joueur en situation d'échec doit parer l'échec au premier de ses deux coups.
  • Si un joueur fait échec au roi au premier coup, il perd la faculté de jouer son deuxième coup.
  • Si après avoir joué son premier coup, un joueur se trouve dans une situation où il lui est impossible de jouer un coup légal, il est déclaré pat.
  • La prise en passant doit être effectuée au premier coup sauf si deux prises en passant sont possibles. Dans ce dernier cas, les deux prises en passant peuvent être effectuées à chacun des deux coups.
  • L'avance de deux cases des pions depuis leur position initiale ne peut pas être considérée comme un coup double (avance de deux fois une case). Donc le joueur peut jouer ensuite son deuxième coup.

🕸Fergus Duniho wrote on Thu, Nov 14, 2019 09:20 PM UTC:

Aside from trying to reconstruct the original Marseillais Chess, I would like to propose a game I might call Simplified Marseillais Chess, which is designed with programming it in mind. It would follow the rule of Balanced Marseillais Chess of giving White only one move at the start of the game, it would allow en passant capture only of a Pawn moved on the last part of a player's turn, it would have a turn end with one move if there were no legal moves to follow it, and it would work with normal stalemate and checkmate on a player's first move. I think those are the main differences from regular Marseillais Chess. Is there anything I have overlooked?


🕸Fergus Duniho wrote on Thu, Nov 14, 2019 08:33 PM UTC:

One more question remains. While the rules seem to allow for second-order stalemate when the King is not in check, what about when the King is in check? Should this count as checkmate or stalemate? From the understanding that checkmate is check plus stalemate, we could argue that check plus second-order stalemate is also checkmate. Or, we might argue that the ability to escape check, even if no follow-up move is possible by any means of escaping check, constitutes only stalemate. Here's an example:



🕸Fergus Duniho wrote on Thu, Nov 14, 2019 08:27 PM UTC:

Here's an example of what I'm calling a second-order stalemate. Black is not in check but has only one legal move.



🕸Fergus Duniho wrote on Thu, Nov 14, 2019 05:59 PM UTC:

For the sake of testing some endgame positions as I write the code, here is a game where I played both sides just to get a stalemate position.



🕸Fergus Duniho wrote on Wed, Nov 13, 2019 08:10 PM UTC:

I think I figured out how to interpret the rule in a way that uses stalemate but avoids the problem of letting a player deliberately move into stalemate. This is the interpretation that if a player does not have any combination of two legal moves, the game ends in stalemate at the very beginning of his turn. I could do it like this. After checking for regular check and stalemate in the Post-Game sections, I could try out the available legal moves to see if any are followed by legal moves, stopping as soon as I find at least one. For this, I would use a subroutine that returns false as soon as one legal move is found and does not take the time to go through all possible moves and calculate a list of legal moves. Since there are plenty of legal moves when lots of pieces are on the board, and a position without any combination of two legal moves would be most likely in a position with few pieces left, there should not be a heavy computational load for doing this.


🕸Fergus Duniho wrote on Wed, Nov 13, 2019 04:50 PM UTC:

I don't know if the interface already commits the user to the first move after he entered it. If not, and he can still take it back, you don't really have to do anything.

This comment popped up while I was writing my last one. The interface does not commit a user to a move until it is complete.

Whatever he does for the second move will be rejected as illegal, so sooner or later he will decide to try another first move.

That's how it currently works. A player without any legal move on his second move is unable to proceed and must go back and make a different move to complete his move. The problem comes in when a player has only one legal move, and that puts him in a position without any more legal moves. In that case, the player is unable to move at all, and all he can do is resign or wait for the clock to time out. I would rather have something cleaner than that.


🕸Fergus Duniho wrote on Wed, Nov 13, 2019 04:44 PM UTC:

Using the Zillions-of-Games version of Marseillais Chess by Young-Hyun Joo, I moved pieces until I got a position where one side used the first move to move into a position with no second move. When I tried to move again, it declared the game a draw.

While I generally don't like the idea of a player being able to draw a game by stalemating himself, it is also a difficult thing to do until the endgame, and giving each player two moves should normally allow the player who is ahead to force checkmate all the more quickly. So, in this game, it may mitigate the greater advantage of the player who is ahead and give the player who is behind greater hope of being able to draw the game without really making the game too drawish.

This rule comes from a reading of Pritchard, and given how he mangled all of my games that ended up in the revised version of his Encyclopedia, I don't trust him. But he is also the only source I have. I would like to find the article written by Fortis, but it may not be on the web. Since I don't have a serious objection to it, and since it is computationally less expensive than some other options, I'll probably go with it unless someone has a more authoritative historical source than Pritchard.

Checking how en passant works in the same Zillions script, it works as I have programmed it except that it allows the capture of two pieces when a piece has moved to the space a pawn just passed over with its double move. I suspect that if capturing two pieces at once were allowed, this would have been mentioned explicitly in the rules. My interpretation is that since en passant means "in passing," the idea is that an en passant capture happens during the pawn's move and not after another move. In that case, the new piece would not yet be on that space when the en passant capture actually happens, and a double capture would not be possible then. Given this, a pawn who captured by en passant on that space should itself be captured, leaving the piece that moved to that space still standing. But this would overcomplicate the game, and it is easier to say that moving the piece there caused the enemy pawn to lose its chance to capture by en passant but compensated for this by giving it another piece to capture. So, I don't support allowing double captures.


🕸Fergus Duniho wrote on Wed, Nov 13, 2019 03:02 PM UTC:

I hadn't thought of that interpretation, but it is more computationally complex than the ones I was considering. It would involve testing a position for legal moves, then trying out each legal move and testing it for legal moves until at least one legal move is found. Also, I normally handle checking for stalemate in the Post-Game sections to minimize its computational cost, but if a move were to be illegal if it had no follow-up move, the code would have to check for double levels of stalemate in the Post-Move sections, and that would significantly raise the computational load of the code.

The two interpretations I was considering were to allow only one move when no second move is legally available or to end the game in a draw when a second move is not available. Another alternative would be to end the game as a loss for the player who does not have a second move available. This would discourage players from deliberately stalemating themselves just as well as making it illegal would, and it could be done with far less computational complexity.


Game Courier History. History of the Chess Variants Game Courier PBM system.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Tue, Nov 12, 2019 10:17 PM UTC:

I have added an Advanced section to the Edit form. This includes a couple options that can be checkmarked. One of them was already included in the Edit form. The new one is the option "Do Not Include Moves in Code." For most games, this option should not be checked. And for unprogrammed games, it should never be checked. It's useful if you handle the execution of moves within your code. What this does is stop Game Courier from automatically adding the moves in a game to the code it generates for the game. If your game is not programmed, the result is that moving pieces will not work.

I added this option, because when I castled in Marseillais Chess and then tried to move the Rook that had just castled, it wouldn't let me, giving me the error message that the Rook was not on the space I was trying to move it from. I realized this was happening, because it would automatically execute all the moves before evaluating any of them. But I didn't need to include that in my code, because my code for Marseillais Chess would normally undo the latest moves, then replay them individually. Given that it was already doing that, I could just remove the moves it was undoing. So, I added the option to remove them.


Marseillais Chess. Move twice per turn. (8x8, Cells: 64) (Recognized!)[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Tue, Nov 12, 2019 10:05 PM UTC:

One more issue has come up. Suppose that a player makes a first move that leaves him with no legal second move. Does this end his turn like a checking move would, or does it end the game in a draw? Pritchard says in Popular Chess Variants, "A player who is not in check and cannot complete his turn is stalemated." This suggests the latter, but he could have said it more explicitly if that is what he meant. Is there any consensus on how being unable to move on the second move should be handled?


🕸Fergus Duniho wrote on Tue, Nov 12, 2019 04:29 PM UTC:

What I cannot imagine is that the original inventor would have thought it reasonable to allow e.p. capture

  1. when the capturing Pawn has not seen the other one move past it
  2. when the Pawn that moved is no longer there
  3. when the e.p. square gets occupied

That's all reasonable, and what I've coded for Game Courier is in conformity with it. The first one is already handled by the rule that en passant is not allowed on the second move unless the player is making two en passant captures. This prevents a player from using his first move to move a Pawn into position to do an en passant capture. (Note that a Pawn that was already in the position to do this could just capture the double-moved Pawn normally and then use its second move to go to the space the now captured Pawn had passed over, reaching the same position without using en passant.)

The second is handled by setting the ep1 variable to false whenever a player moves the same Pawn again. Since ep1 would store the position of the previously moved Pawn if the last move were a Pawn move, it checks whether the second move is from that location.

The third is handled by checking for a normal capture before checking for other types of Pawn moves. If the move is a normal capture, it never gets to the code for en passant. If it's not a normal Pawn capture, then the move was to an empty space. By the time it reaches the elseif clause for en passant, it has already been determined that the space is empty.

 


🕸Fergus Duniho wrote on Tue, Nov 12, 2019 02:54 AM UTC:

So if the player moved a pawn two spaces and the placed a piece on the square passed over you would allow capture of both with a single move? 

The way it is coded, that would not happen. The first thing it checks for is an ordinary diagonal capture. If the move involves one, that's what it does, and it doesn't get around to checking for an en passant move.

I have started to look at the thread you provided a link to, and I will continue to look at it tomorrow.


🕸Fergus Duniho wrote on Mon, Nov 11, 2019 08:26 PM UTC:

The earliest source I can find is Pritchard's 1997 Encyclopedia, which is the source Hans originally used to write this page. It says "En passant is legal if the opponent moved a pawn two squares on either of his moves but the capture must be made at once. However, if the opponent made two two-square pawn moves, both pawns can be taken e.p. This last rule is credited to Alekhine by F. Palatz in an article on the subject (LEC Sep 1928)." LEC refers to L'Echiquier. Notably, Alekhine is not one of the inventors, and how the game should handle en passant might be something that the original inventors didn't think of. It is also unknown whether the game was invented by Fortis or by de Queylar. It has been attributed to each one, but its origins are murky.

Regarding one of the alternative rules, it says "The game was sometimes played with alternative rules: a check on the first move was illegal and a player could not capture e.p. if the pawn had been moved in the first part of the player's turn." It's very possible that Fortis and de Queylar invented similar games with slightly different rules that eventually got conflated together.

The rule that Greg Strong and H. G. Muller propose has the advantage of being the simplest to program. It works with code that has already been written for Chess. Of course, the original inventor of the game would not have had this in mind, since programming games was not an option when it was invented. However, the rules as initially described above can be programmed, and that's what I have done in Game Courier. The only issue with them is that they need emendation for a Pawn that moves twice on the same turn. If we keep those rules, then en passant capture should be impossible in this instance, or it should be allowed for the Pawn on its new space. I have the former programmed right now, whereas the latter would be trickier to program.


🕸Fergus Duniho wrote on Mon, Nov 11, 2019 04:37 PM UTC:

I changed it to allow en passant only when the Pawn's double move is a player's second move, and I confirmed that this change did not break any past game. But as I was rewriting the rules, one more thing occurred to me. Suppose a Pawn's double move done on the first move puts a King in check, thereby ending the turn without a second move. If this check could not be ended with an en passant capture, this could allow a King to be checkmated in a position that would not be checkmate in Chess, and this would violate the intention behind the game.

So, I think we have to exclude the rule that en passant is allowed only when a Pawn makes a double move on the second move of the turn. This could be replaced with the rule that en passant is allowed only when the double move was the opponent's last move, or it could be replaced with the rule that en passant is allowed only when the Pawn that made a double move didn't make another move after it. For the meantime, I'll change it back to the latter.


🕸Fergus Duniho wrote on Mon, Nov 11, 2019 02:28 AM UTC:

While fixing a bug in the Game Courier code, I came across a situation that is not clearly covered by the rules. Suppose a Pawn makes its usual first-move double move, then it moves forward one more space on the same turn, so that it moves a total of three spaces forward. Can it be captured by en passant if the opponent has a Pawn in the usual position? On the one hand, it has made a double move, and a Pawn that makes a double move can normally be captured by en passant. On the other hand, it is no longer on the space it moved to when making its double move, and if the player had wanted to, he could have moved the Pawn forward one space, then captured the Pawn that was in a position to capture it by en passant if it had made a double move.

For now, I have written the code to forbid en passant capture in this situation. Does anyone know if there is any precedent for allowing en passant capture in this situation?


Game Courier. PHP script for playing Chess variants online.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sun, Nov 10, 2019 04:12 PM UTC:

As a test, I temporarily undid it, but the problems with these two logs remained. Each involves a Pawn moving twice on the same turn. I'll look into it further.

It specifically involves a Pawn moving one space forward after moving two spaces forward. Any other moves by the same Pawn are okay, and it's okay to move any other piece I've checked twice in a row.

The problem seems to be due to the ep1 variable being set. Since a Pawn's normal double move sets this variable, it is set when the Pawn is moving forward a second time, and it tries to evaluate it as an en passant move, which it isn't.

It is now fixed by adding the condition and != #ep1 #from to each line checking whether the move is an en passant move. This indicates that if the move is coming from the space previously marked as #ep1, it is not an en passant move.


🕸💡📝Fergus Duniho wrote on Sat, Nov 9, 2019 04:18 PM UTC:

It was preserving the value of $pastmoves after prepending it to the value of $moves, which caused it to be prepended again with a double move. To fix this, I set both $pastmoves and $_POST["pastmoves"] to the empty string after prepending its value to $moves. I had to set the latter to it, because I was using a function called copyformdata(), which recreates the form data from the previous form.


🕸💡📝Fergus Duniho wrote on Fri, Nov 8, 2019 11:31 PM UTC:

Show me the series of moves that led up to the position in Extra Move Chess that revealed this problem.


🕸💡📝Fergus Duniho wrote on Thu, Nov 7, 2019 01:25 PM UTC:

Looking at your code, I found continuemove in the Post-Game sections, and I found askpromote in some of your subroutines. These are the only parts of your code that I would expect to be able to update the moves the player entered. I'm not sure that continuemove works properly in the Post-Game sections. At least I've been using it in the Post-Move sections instead. In the Post-Game section, you're asking it to continue a move that has already been completed, and that may be a problem. But I would have to experiment with it to say for sure. Unfortunately, looking at my code for it doesn't give me any insight into what to expect.


🕸💡📝Fergus Duniho wrote on Thu, Nov 7, 2019 02:20 AM UTC:

se 3f-4e; se 3f-4e;

This might be what is illegal. You are making the same move twice in a row. When you repeat the same move you just made, the se piece has already moved from 3f, and that space should now be empty. 


Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Wed, Nov 6, 2019 06:29 PM UTC:

The last Kibbitz comment was 438 days ago. When I got rid of the play subdomain and put everything on one main domain, I started using the same footers for all pages. It looks like I did not add Kibbitzing code to the main footer that replaced the play subdomain's footer. I'll get on that in a while.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, Nov 6, 2019 06:22 PM UTC:

I made some more fixes to the King's two-space leap in the subroutines for moving the King. They now give informative messages about particular reasons why an illegal move is illegal. Since I used restore to check whether the King was in check, I went back to checking whether the destination space was empty.


🕸Fergus Duniho wrote on Wed, Nov 6, 2019 05:58 PM UTC:

I just made some more fixes to how the King's two-step leap is handled in the stalemated subroutine, so that only legal moves are displayed.


🕸Fergus Duniho wrote on Wed, Nov 6, 2019 05:46 PM UTC:

With en passant, the bpr variable for Black's Pawn Rank had the wrong value. For the King's two-space leap, it was checking whether the destination was empty, which works only for potential moves, rather than checking whether a capture had been made. I have fixed these now, and you can test whether anything is still not working.


Game Courier. PHP script for playing Chess variants online.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Tue, Nov 5, 2019 10:28 PM UTC:

This is a big game of the sort I'm not too familiar with. It would help if you would play a game against yourself up until the promotion move you're having trouble with, then give me a link to the game, so that I can try to figure out something.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Tue, Nov 5, 2019 10:23 PM UTC:

I now have a working preset for Metamachy at this URL:

https://www.chessvariants.com/play/pbm/play.php?game%3DMetamachy%26settings%3Ddefault

Just to make sure everything is working, it could use some beta-testing before it's used in the tournament.


Testing[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Thu, Oct 17, 2019 04:33 PM UTC:

I just checked my page rules on Cloudflare. They are set to cache drawdiagram.php and to bypass the cache for all other PHP scripts. In case it helps, I just chopped the "www." part off of the URLs. From what I understand of the documentation, this is not required.


🕸Fergus Duniho wrote on Thu, Oct 17, 2019 04:14 PM UTC:

Although I haven't got a response to my ticket, and the host still says "Virtual server not found", things do appear to be working again.


🕸Fergus Duniho wrote on Wed, Oct 16, 2019 03:30 PM UTC:

As far as I can tell, there is a problem with the server. It is somehow partly online and partly offline, and it is also affecting my blog, which has its own domain. I have submitted a ticket about this to the hosting service, and they will hopefully do something about it.


🕸Fergus Duniho wrote on Wed, Oct 16, 2019 01:24 AM UTC:

Testing again. The host says " Virtual server not found ", but pages are showing up, and I was able to log in. I haven't been able to move in Game Courier all day. I get 520 errors when I try to, but I've seen that other people have moved today.


🕸Fergus Duniho wrote on Tue, Oct 15, 2019 03:02 PM UTC:

Testing.


Change your password[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Tue, Aug 6, 2019 05:46 PM UTC:

A while ago, one longtime member shared with me an extortion scam email he had received that included his CVP password in it. Today I received a similar email that included my CVP password. If you get such emails, just ignore them. It talks about installing malware on your computer, recording your passwords, recording you through your webcam, then conveniently removing all trace of the malware from your computer. It's just a scam, not a real extortion threat.

I don't think it's a coincidence that the password it included in the email was the one for this site. Until just now, I had not changed it in years, and several years ago, all passwords here were encrypted as MD5 hashes. This is very insecure, because there is a fixed relationship between the original word and the encryption, which allows people to build translation dictionaries that can identify your password from its MD5 hash.

If there were really malware on my computer monitoring my passwords, the hacker could just as easily steal my Paypal password, which would prove lucrative without going through the trouble of trying to blackmail me.

If you have not changed your password in a long time, it will still be encrypted as an MD5 hash. To fix this, sign in and change your password. Your new password will be encrypted in a format that does not have a 1-to-1 relation with the password, and it will be much more secure. While you could keep the same password and just update its encryption, that is what I had done, and this email proved that this was not enough to protect my password. The best thing you can do to protect your password is to change it.


StrataChess v1.0. separate Strategic and Tactical gameplay. 2-6 players. Element of Chance. Terrain. Build your own armies.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Tue, Jul 23, 2019 01:40 AM UTC:

I have added a page rule on Cloudflare for bypassing the cache for PHP scripts with the extension .php, leaving one exception for the drawdiagram.php script, which should be cached. This should make scripts for editing content load the latest changes.


Home page of The Chess Variant Pages. Homepage of The Chess Variant Pages.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Mon, Jul 22, 2019 06:00 PM UTC:

If that is still happening, please provide details on how to replicate the problem. Otherwise, it is hard to know what is going on or how to address it.


Hidden Random Chess. This is a two-player game that incorporates the element of chance in chess.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Thu, Jul 18, 2019 05:14 PM UTC:

The setup section says "See illustration," but there is no illustration. One would be helpful to have. Also, the setup says nothing about the board. I'm presuming it's the usual 8x8 Chess board, but it would be helpful to mention this explicitly.

The name Disc Chess brings to mind Terry Pratchett's Discworld and suggests to me a game played on a circular board. Also, it's not the only game with disc shaped pieces. Chinese Chess is also played with disc-shaped pieces. I agree with Ben that a name reflecting the hidden information aspect of this game would be most appropriate. Something like Undercover Chess might work.


Game Courier. PHP script for playing Chess variants online.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sat, May 18, 2019 06:20 PM UTC:

Nowadays, $orientation is mainly used when viewing a game, just in case you find side-flipping on each move disorienting and would like to view a game from a fixed perspective. It can be set in a preset or settings file with the use of GAME Code. It may also have a legitimate use in fairy chess problems, but it looks like the code for handling them needs to be overhauled.


🕸💡📝Fergus Duniho wrote on Sat, May 18, 2019 05:59 PM UTC:

That's now fixed. The settings file was an old one with some obsolete settings. It had $orientation set to "White", but setting this variable is no longer allowed when creating a new preset. I changed its value to "auto", which is the default. I'm now going to look into how I still use this variable.


MySQL[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Wed, May 8, 2019 04:33 PM UTC:

I just updated the database server to version 10 of MariaDB.


Unicorn Great Chess. Enjoyable game: Great Chess pawn structure encloses two half-ducks - "lions" - with exciting bishop-nightrider - "unicorn.".[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sun, Mar 10, 2019 04:00 PM UTC:

It will work correctly now. The coordinates stored for checking legal castling moves on for Black were on rank 8 instead of rank 10.


Colossus. 10x10 chess with 4 Rooks, 4 Knights, 4 Bishops, 10 Pawns, 1 Queen and 1 King![All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Wed, Mar 6, 2019 03:41 PM UTC:

That information was already there in the Notation section. I tweaked it a little to make it clearer.


🕸📝Fergus Duniho wrote on Tue, Mar 5, 2019 11:29 PM UTC:

That was indeed the problem. You castled by moving your Rook to the King's space, which was done as a Rook move, but castling this way did not include any code for updating the variable storing the King's position. There was an add command for moving the King, but it needed to be followed by a set command that otherwise looked the same. I have now added the appropriate set commands, and you can now capture the Bishop with your Pawn.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Mon, Mar 4, 2019 02:30 AM UTC:

When I looked over the time controls before, I didn't notice the thing about the 4 moves per week pace. I had previously modified the invitation script to not include the option of setting a pace in the time controls, but I forgot about doing the same thing in the script for defining a round. The code is kept in Game Courier for backwards compatibility with games that still use it, but I do not recommend its use. Here is how it works. I have added some extra comments to better explain things.

// As long as you keep the desired pace, your reserve time is kept from falling below $sparetime.
// $i is the turn being checked. $i & 1 returns 0 or 1 to identify the player.
if ($timeleft[$i & 1] < $sparetime) {
    // Total time that has passed from beginning of game
    $timepassed = ($timestamps[$i] - $timestamps[0]);
    // If average duration for a move is less than the set duration for a move,
    // then moves are being made faster than required,
    // and $timeleft is raised to value of $sparetime.
    // Equivalent to -> if ((($timepassed / 2) / $i) < ($paceperiod / $pacefreq)) 
    // but loses no precision and avoids division by zero error
    if ((($timepassed / 2) * $pacefreq) < ($paceperiod * $i))
        $timeleft[$i & 1] = $sparetime;
    }
}

One problem with this is that it divides the time passed by 2, which is accurate only when each player takes exactly as long to move as the other player. It would be more accurate to count up how much time each player has individually used. So, it will normally reward both players or neither player, depending on how fast the game is moving along. It does not account for individual variation in playing speed. Because it divides time passed by two, the pace it checks for is actually half as fast as the pace specified. So, if the pace is 4 moves per week, it will reward players for moving twice a week. Without knowing how it works, you might imagine that it will enforce a certain pace. It will not do that. It will just reward players for keeping a minimum pace. When combined with other time controls that already reward players for moving quickly, it may help inflate how much time players have left. With the pace set to 4 moves per week, it will be possible to play slow, leisurely games that will take many months.


🕸Fergus Duniho wrote on Fri, Mar 1, 2019 01:15 PM UTC:

Sunday is March 3rd.


Hexagonal Chess Notation. Article discussing Hexagonal Chess notation.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, Feb 20, 2019 04:50 PM UTC:

Kevin,

Reviews should be written as comments, not as pages. The review you mentioned was written before we had a comment system in place. To distinguish your comment as a review, give it a rating, and do not rate any of your other comments on the same page. When you favorite a game and write a review for it, a review link will show up for it on your personal information page. You will also find a link to a listing of reviews on the What's New page.


Hectochess. 10x10 variant that can be played with 2 mismatched Chess sets.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Wed, Feb 20, 2019 01:17 PM UTC:

Regarding the ability to let either side move first, this was criticized in the comments for Yangsi, and you removed it from that game. I hope you will do the same here.

Since your Cannon moves as a Leo, why not call it that and change your graphic images for it?


Metamachy. Large game with a variety of regular fairy pieces.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Thu, Feb 7, 2019 11:15 PM UTC:

Ideally, I want to treat Metamachy as a game in which White has the first move of the first turn but Black has a special setup move before White moves. The trouble is that the more complicated Game Courier has gotten, the more difficult it has become to change how it behaves. I have some ideas for what to do, but I also worry about breaking things to get it done. It also takes a lot of inspection of the code to figure out how it works and what can be changed. Some of my ideas might also be useful for supporting multi-player games, but that's another thing I have not added yet because of the difficulty in doing so.


🕸Fergus Duniho wrote on Tue, Feb 5, 2019 11:20 PM UTC:

I have made good progress toward making a rule-enforcing preset for Metamachy. The last thing to do is to enable Black to place pieces before White moves. Game Courier is not currently set up to allow anyone to do anything before the first player moves. One way to handle this would be to give the first move to Black, but this would involve inverting the board, switching the sections coding for each side, and listing White as the second player in the movelist. I would rather avoid all that, but that means working out a way to allow the second player a pre-game move.


Game Courier Logs. View the logs of games played on Game Courier.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Tue, Feb 5, 2019 01:19 PM UTC:

I found a line of HTML that included "{$userid}" for inserting the value of the $userid variable, and I changed it to a PHP echo statement.


🕸📝Fergus Duniho wrote on Mon, Feb 4, 2019 10:57 PM UTC:

The second link is wrong. It contains the string "{$userid}" instead of the value of the $userid variable. From what page are you getting this link?


🕸📝Fergus Duniho wrote on Mon, Feb 4, 2019 12:43 PM UTC:

This hasn't happened to me. Keep track of the page you were on when this happened, and get back to me with this. Also, make sure the problem is not simply that it is not currently your turn in any game.


Caïssa Britannia. British themed variant with Lions, Unicorns, Dragons, Anglican Bishops, and a royal Queen. (10x10, Cells: 100) [All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sun, Feb 3, 2019 02:56 AM UTC:

Since a royal Queen cannot move through check, it can be checkmated in many of the same positions that would checkmate a King. For example, if a Rook or Bishop is checking it from more than one space away, it cannot capture the checking piece. If you replace it with a royal Chancellor, that piece now has up to 12 possible leaping moves, which is more than the royal Queen has. However, this is fewer than the royal piece in Cavalier Chess has, and checkmate is doable in that game. The main thing would be to design the army to complement the powers of the royal Chancellor. Extra diagonal pieces might be helpful, since it's going to be vulnerable to diagonal attacks. Maybe pieces with Camel or Zebra powers would be helpful too.


Abecedarian Big Chess (ABChess). Buy-your-own-army variant on a big board; 26 piece types. (11x11, Cells: 121) [All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Sat, Feb 2, 2019 08:59 PM UTC:

Looking at the ZRF, which was written by Glenn Overby himself, the code for the King looks like this:

; King
(piece
      (name King)
	(help "King: one space any direction to safe space; cannot leave fortress")
	(image Black "imagesABChessBK.bmp" White "imagesABChessWK.bmp")
      (moves
	((free) n (available) (verify (in-zone? fortress)) add)
      ((free) e (available) (verify (in-zone? fortress)) add)
      ((free) s (available) (verify (in-zone? fortress)) add)
     	((free) w (available) (verify (in-zone? fortress)) add)
      ((free) ne (available) (verify (in-zone? fortress)) add)
      ((free) nw (available) (verify (in-zone? fortress)) add)
      ((free) se (available) (verify (in-zone? fortress)) add)
      ((free) sw (available) (verify (in-zone? fortress)) add)
	(n (while empty? n) (verify (piece? King)) add)
      )
)

The free command is used to verify that a piece is not immobilized by an Immobilizer. This command is used before every type of movement except the last one. This last one is for capturing the enemy King by moving forward as a Rook. Therefore, an otherwise immobilized King can still threaten check against the enemy King, and this prevents the enemy King from checking it by moving to the same file with nothing in between them. Therefore, the rule against Kings being in the same file with nothing in between them is absolute, and there is no exception for checking an immobilized King with the other King.


🕸Fergus Duniho wrote on Sat, Feb 2, 2019 04:17 PM UTC:

The rule is borrowed from Xiangqi, but since that game doesn't include the Immobilizer, appealing to it alone cannot resolve this question. I think the usual rule in Xiangqi is that Generals may not occupy the same file with nothing in between them. But when it comes to programming Xiangqi, the simplest way to code for this is to give each General the power to capture the enemy General as a forward-moving Rook. Since they cannot move into check, this never actually results in one capturing the other, and it functions the same as a ban on occupying the same file with nothing in between.

Since the Immobilizer comes from Ultima, we might look to that game to resolve this question. Can a King occupy a space adjacent to an immobilized King in Ultima? More generally, does an Immobilizer eliminate the checking power of a piece or simply its powers of movement? Our page on Ultima does not address this issue, but Pritchard does in Popular Chess Variants. He writes, "An immobilized king can be mated by its rival moving next to it." Using this as a precedent, it looks like the Immobilizer does eliminate the checking power of a piece, and this would allow an immobilized king to be checked by the enemy King.

However, the one thing that could be said against this interpretation is that Glenn Overby writes in the "Rules of Play":

The King may never be on the same file/column as the enemy King, if there are no pieces of either color in between them.

My point here is that it is being described as a rule of the game, not simply as a description of how the King moves. This rule might be understood to override the ability of the Immobilizer to rob a piece of its checking powers. Ultimately, this may be something for Glenn Overby to rule on.


Hex Shogi. A new family of hexagonal Shogi variants.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Tue, Jan 29, 2019 09:57 PM UTC:

It's not an earlier version of the same game. Dekle's Hexshogi is an earlier game with a very similar name and concept, but since I was unaware of it when I created this game, it had no influence on its creation, and I didn't think to choose a more distinctive name. Unfortunately, the description in Pritchard's Encyclopedia is too incomplete to tell how it was played.


Game Courier Tournament 2019. Chess Variant Tournament to be played on Game Courier.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Tue, Jan 29, 2019 06:00 PM UTC:

Having grace time makes things fairer for people who normally move at different times. A day of grace time is good for assuring that differences in personal schedules do not cost some players more time than others. While we should do something to rein in the length of games, some games go on because of several moves. Limiting the total time of the game could unfairly hurt the player whose turn happens to run up against such a time limit. The maxtime value is used to limit the total time a player may have between turns. It does not limit the total time for the game. This could put a cap on how much extratime and bonustime could increase someone's total time. Setting this to 30 days would mean that no player could take more than 30 days between turns. I would suggest setting it to 28 days, which is twice the initial spare time. If we want to be a bit stricter, we could set it to 14 days, which matches the spare time. This would allow someone who is behind on time to gain some back by making moves, but it would not allow anyone to gain more time than the initial 14 days of sparetime.


🕸Fergus Duniho wrote on Fri, Jan 25, 2019 12:26 AM UTC:

I'm interested. I was also thinking about going with Metamachy instead of Perfect 12. It seems to be a more recent evolution of Perfect 12. Perfect 12 does not appear in the "Chess Variants on very large boards" section of Cazaux's website, and that section begins with the statement "I consider that these variants are now surpassed by METAMACHY." So, I expect that he favors it over Perfect 12. Although he does not list it in his Favorites section, we have already done Shako as you mentioned, and the other two were for design contests with unusual board sizes. There is already a bare preset for this game, but I could make one that enforces the rules.


🕸Fergus Duniho wrote on Thu, Jan 24, 2019 09:03 PM UTC:

Isn't it too early to cancel the tournament from a lack of interest? I haven't even seen a call to sign up for it yet. At present, I have just been waiting for the final lineup of games to take shape.


Ideas for future of chess variants[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Sun, Jan 20, 2019 06:36 PM UTC:

If you want live tournaments, it will probably be best to let someone other than myself handle it. I have no experience in running live tournaments, I went to maybe one Chess tournament before quitting the Chess club in high school, and I don't travel much. I'm more into the variety of Chess variants than I am into the intense competition of the Chess world.


The birth of two variants: Apothecary chess 1 & Apothecary chess 2[Subject Thread] [Add Response]
🕸Fergus Duniho wrote on Sun, Jan 20, 2019 06:14 PM UTC:

On comparing the post-game code in the two presets, there are some piece label differences, and in the Post-Move 1 code for the second preset, there is an endif without a semicolon after it.


🕸Fergus Duniho wrote on Sun, Jan 20, 2019 06:09 PM UTC:

In the one with the infinite loop, there are complicated piece functions for the G and A pieces, and the N function has some more code in it. One of these functions might be at fault. I would recommend that you get the second one working, then introduce these functions back into the script one at a time and see what happens. I do not think that anything in the post-move code is involved in the infinite loop, since it happens before I have the opportunity to make a move. But to rule that out, you could try deleting the post-move code temporarily to see if it makes a difference.


🕸Fergus Duniho wrote on Sun, Jan 20, 2019 06:02 PM UTC:

When I try to use the first preset, it repeats "Please report any bugs or errors to Fergus Duniho" on the screen endlessly. In looking more closely at the code, I see that they are not the same. I guess I was not using the Compare plugin properly. I've tried it again, and this time it is showing differences. But I have not determined what is causing this infinite loop.


🕸Fergus Duniho wrote on Sun, Jan 20, 2019 05:48 PM UTC:

When I tried to move a Pawn in the second preset, I got the error "Call to P subroutine got misrouted."

Looking at your code as it is displayed below the error message, I do not see a P subroutine defined anywhere. So, it appears to be calling a subroutine that is not defined in your code. Looking at the code you have written in your pre-game section, you have include chess3 commented out. This is the include file that would have the P subroutine defined in it. So, including it should eliminate this error.

Returning to the code displayed below the error message, this code is properly indented, and anywhere the indentation seems incorrect, you may find an error. On line 85, you have an endif without a semicolon after it. You have the same error on line 114.


🕸Fergus Duniho wrote on Sun, Jan 20, 2019 05:37 PM UTC:

By doing automated comparisons with the Compare plugin for Notepad++, I determined that the code in these two presets are the same. Although you say that they display legal moves, they do not. They presently lack any post-game code, but that is where code for recording the legal moves should go. What errors in particular have you been seeing?


Abstract Chess Pieces. Icons of chess and chess variant pieces.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Sun, Jan 13, 2019 10:49 PM UTC:

As in Rocket J. Squirrel. But I do believe that Rocket is another name for the piece.


Yangsi. A very playable chess variant with 12 different pieces on a 10x10 board.[All Comments] [Add Comment or Rating]
🕸Fergus Duniho wrote on Thu, Jan 10, 2019 02:20 AM UTC:

Deciding who moves first: In Chess and most chess-like games, the first move is always given to one side. In Chess, the side with the first move is always White. However, the side with the first move also has first-move advantage. In Chess, White has a slight statistical advantage over Black simply because White always has the first move. Because either side can move first in Yangsi, that slight statistical advantage is eliminated.

You make it sound like this is an advantage of this game, but it isn't. The first move advantage still exists. While it no longer belongs exclusively to one color, the new rule concerning who moves first doesn't change how frequently the actual players each have this advantage. I would recommend scrapping this rule, because it does not actually make the game any fairer. It is simpler and better to just follow Chess on this one and let White move first. How the players decide who will move first would then simply come down to how they decide who will move as White.

While I'm glad that Gross Chess has played a role in igniting your interest in Chess variants, I have my doubts that reducing the size of the board while keeping the same pieces will make for a better game. The opening setup in Gross Chess is designed to give most of the pieces a little bit of freedom of movement from the very beginning. That gets lost with all the pieces crammed together. Also, this game has 60% piece density at the beginning of the game, which is higher than the 50% in Chess or the 64/144 = 44.4% in Gross Chess. This might make the game more cramped. However, I haven't done any extensive study on how piece density affects game quality, and I'm only guessing that higher piece density could have a deliterious effect. Some actual gameplay is required before I can make a more considered judgement on this matter.


BCMGames. A versatile and customizable Shogi program.[All Comments] [Add Comment or Rating]
🕸📝Fergus Duniho wrote on Wed, Jan 2, 2019 11:29 PM UTC:

On /r/shogi today, someone asked where they could get BCMShogi, and the person who answered provided a link to the final version of BCMGames, which is later than the version I previously had here, and unlike that version, this one works. So, I added my Shogi graphics to it and made a new distribution. Since it also supports other games, I will look into adding graphics for other games. For now, this new distribution just adds the Shogi graphics I previously added to earlier distributions. I also updated the screen shots so that they say BCMGames instead of BCMShogi.


98 comments displayed

LatestLater Reverse Order EarlierEarliest

Permalink to the exact comments currently displayed.