[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]
Comments by FergusDuniho

Some of the new features I added are only temporary. I will be replacing some of the conditions and expressions I wrote for if and set with a function that allows various operations to be combined in a single expression using backwards Reverse Polish Notation, i.e. Polish Notation.
I have added the ability for if, set, and verify to use a Polish notation calculator for evaluating complex expressions. But it will be a while before the documentation is ready.
The automation language for Game Courier is now more powerful than ever. The newly developed if, set, and verify commands can all make use of a Polish notation calculator for evaluating very complex expressions. The Polish notation calculator includes special functions for getting information that can be used in code for enforcing rules to games. It might be possible now to write code that enforces the rules of Chess, though what I've done so far focuses mainly on the easier task of checking whether a piece has moved as its powers enable it to. The harder part is checking for check and checkmate. I haven't worked out all the details yet, but what I have implemented may already be capable of this. But even if it is, I expect to write some more functions to make the process go faster and take up less code.

If you really want to play Mortal Chessgi by yourself in solitaire or against a computer opponent, I can't recommend anything better than Zillions of Games. I implemented Mortal Chessgi for Zillions of Games back when I created the game. Here is a link to the page that Zillions of Games keeps on this game: http://zillions-of-games.com/games/mortalchessgi.html

I've begun to think about the procedure to use for pairing people up for games. Before describing the procedure, let me state its goals. One goal is to maximize the number of games played by everyone. Short of that, to maximize the number of people who play any game. Another goal is to maximize the number of each player's top n choices that he gets to play. Short of that, to keep each player's assignment of games in conformity with his preferences as much as feasible. Here is what I'm thinking of. I'll begin by getting a list of ranked preferences from each person of his top n+3 games. I'll mark any game that appears in everyone's top n games. Let's call the number of games everyone has in their top n m. Everyone will play these games, but I won't pair people up in them until I have paired people up for other games. I will first pair people up for the remaining n minus m games. Beginning with each person's top ranked unmarked game, I will try to find a partner who also ranks that game highly. Someone who ranks a game more highly will be favored over someone who ranks a game less highly. If an odd number of players rank a game among their top n games, precedence will be given to those who rank it higher. As much as possible, any player who has ranked a game on top will be given an opponent who has ranked it among his top n games. Whenever two people are paired up for a game, I will mark that game in their rankings. After pairing up opponents on the basis of top ranked games, I will repeat the procedure a rank lower, and repeat again until every player has been paired up for n-m games. If the procedure terminates without pairing everyone up on n-m games, I will repeat the procedure on the unmarked games of player's who haven't yet met their quota, but I will extend it to the full ranking. Then I will pair everyone up on the games everyone put in their top n games, pairing each person up with someone he hasn't already been paired up with. If anyone would be happy to play any game among the top n, saying so will make it a bit easier to pair everyone up for games they will be happy playing. If anyone ends up unhappy with his assignment of games, he can go read Green Eggs and Ham. If anyone has a better suggestion for how to acheive the same goals, I will be happy to hear it.
I wasn't aware of Glinski's rules concerning the points given for stalemate, but since those are part of the rules for that game, we should follow them.
Okay, I've done some additional thinking on how to pair people up. To maximize how many people get their full preferences met, it is important to pair people up for less popular games before pairing them up for more popular games. Also, if the tournament is played in multiple rounds, it will be okay to let people play the same game twice, so long as it is played for a second time in a subsequent round between two people who each won the game against other opponents in a prior round. This will help allow everyone to play only his preferred games. To better enable this option, it will also help to play the most widely preferred games during the first round. With these things in mind, here is how I propose handling this. First, make a list of how many times each game is included among someone's top n games. Next, make a table of which games are among the top n for each pair of players. Make an ordered list of all pairs of players, using the following criteria: Give precedence to the pair that prefers fewer games in common. When two pairs prefer an equal number of games in common, give precedence to the pair whose commonly preferred games includes the least popular game among both sets of commonly preferred games. In case of a tie, appeal to the second least popular game in either set, and so on. Go through the sorted list from the beginning, pairing each set of entrants together on the game that is least popular among all the entrants, for which neither entrant has already been paired up with someone else. In the event of a tie on this score, pair them up on the game most preferred by both. If there is no game most preferred by both, pair them up on the game most preferred by the entrant who has had fewer of his preferences met so far. If this process does not pair everyone up with everyone else, additional pairing may wait until the second round as long as each player has been paired up on enough games for the first round. On the next round, anyone who still needed to be paired up for some games could be paired up on games he and someone else each won in the first round. In some cases, two entrants who had been paired up for one game could be allowed to switch to a game both won in a previous round. This could free them up to play the game they had been paired up for against other opponents. In either case, this would help all players play only their preferred games. In the event that people still had to be paired up for the present round, the previous procedure could be repeated with everyone's top n+1 games. As needed, it could be repeated again with everyone's n+2 games and finally with everyone's n+3 games. At n+3, all games would be tied for overall popularity, and pairing would be based on overall preference between both players. In each case, someone would get to play one of his preferred games.
I don't like this kind of thing any more than you do. I was recently playing a game that my opponent deleted as soon as I got ahead in material. But the timing was good, because it inspired me to make every game in the tournament immune to deletion by the players.
I have Windows 98 and Windows Me, but I don't have Windows XP. So, if it is a problem peculiar to XP, I don't have the means to look into it. Maybe there is something subtly different about one of the bitmaps.

The commands for Game Courier automation have been greatly enhanced recently, and if you want to see a good example of what can be done with them, take a look at this preset in Edit mode.

I did some more debugging this evening. I fixed a bug, reported by Antoine, that allowed a piece to capture another piece of its own color. I also fixed a bug in my Polish notation calculator that caused it to ignore checks from Knights. I spent the past hour or so entering moves from a game between Captain Smith and Philidor. The entire game played through, and I caught the Knight bug while trying to make illegal moves on occasion. At the end, I tested the checkmated King's moves, and none were allowed. One was because it couldn't capture a piece on the same side, and the rest were because it couldn't move into check. I also tried moving another piece, but the King remained in check, so the move wasn't allowed. The one remaining bug that I know of has to do with being able to enter illegal moves by entering multiple moves with semicolons or by entering commands. This has to do with what kind of entry data is allowed and not with the preset per se. If I included an option for restricting entry data, I could stop the entry of illegal moves. But for now at least, I am going to consider this bug acceptible. The preset is good enough to keep you from making illegal moves by mistake. It just won't prevent you from deliberately making some kinds of illegal moves. But on those occasions when you did deliberately make an illegal move, it would be obvious to your opponent that your move wasn't well-formed. Other than that, it seems to be in full working order. Try it out and let me know if you find anything amiss.

Before the tournament begins, I am going to see what I can do about creating presets that actually enforce the rules of each game. I have already done Alice Chess, which seemed to be one of the easiest to do first. I'll continue with others that seem easier to do.
Rule-enforcing presets are now made for Grand Chess and Cavalier Chess. I plan to work on Eurasian Chess and Chinese Chess next. These will require a new function for checking for attacks from hopping pieces.
I have begun to implement a significant change to Game Courier, which is going to be made use of in the tournament. In the past, every preset was fully stored in a log file, and all settings were stored in forms. I am now implementing the ability to create and use separate settings files. My three main reasons for this are (1) to use less storage space, (2) to generate less bandwidth, and (3) to be able to debug automation code without interrupting a game. These three reasons all became more important once I began writing long pieces of automation for enforcing rules. The long code would have been needlessly duplicated in multiple logs and needlessly included in hidden form fields on webpages. Also, I would have had to edit individual log files to debug automation code that isn't working right. This way, we can use presets that enforce rules without worrying about bugs. If anyone finds a bug during a game, I can just update the appropriate settings file without touching anyone's log file. I will start uploading presets with settings files this evening.

When you're implementing the rules of a game, you have to pay closer attention to the consequences of the rules than you would have to just to learn the game. This page omits an important detail I had to discover on my own. En passant is possible only for a Pawn on the second board. When a Pawn makes a double move, it moves to the second board. If it had moved only one space, it would have still moved to the second board, and only a Pawn on that board would have been able to capture it. Since en passant is supposed to allow a Pawn to capture an enemy Pawn it would have been able to capture if it had moved only one space, it follows that en passant is for the Pawn waiting on the second board, not for any Pawn on the first board. Furthermore, I have deduced that a Pawn can be properly situated for making an en passant capture only if it has never made a double move. To be properly situated, a Pawn must be on a player's fifth rank. To get to the fifth rank, a Pawn may make three single space moves or a double space move and a single space move. With three single space moves, the Pawn will be on the second board. But if it makes a double move and a single move, its two moves will return it to the first board, and it will be unable to capture anything by en passant.

Yes, you have until the end of Monday to enter. If you can't use Paypal, send a check to David Howe and notify me that you have done so, since the check wouldn't arrive by Monday.
I've spotted an inconsistency in the details for how the tournament will be run. I said that 10-12 will be played round robin, and I said that 12+ will use elimination rounds. So I've said contradictory things about what we'll do with 12 people. I have now removed the inconsistency by going with round robin for 12 people with three rounds of four, four, and three games. This would allow everyone to play 11 games. Anything above 12 will keep the maximum number of games at 11, while allowing all the strongest players to play each other, by using elimination rounds. If we go with elimination rounds, I am considering making only the second an elimination round, allowing everyone to play at least 8 games. If 13 or more sign up, then I will let everyone in the tournament vote on the matter, with any abstention counting as a vote for what I originally said I would do.

The person who said that Crazyhouse is better was surely referring to a well-known game that is only slightly different from Chessgi. Crazyhouse is played like Chessgi with two differences. Besides Chessgi's restriction against dropping Pawns on the last rank, Crazyhouse has a further restriction against dropping Pawns on the first rank. Also, whenever you capture a promoted Pawn, it demotes back to a Pawn in Crazyhouse, while it remains whatever it promoted to in Chessgi. I suspect the reason anyone would prefer Crazyhouse is that it diminishes the power of the pieces one may hold in hand. But this is not such a strong reason as one might think. Although it's possible that someone could hold several Queens in hand in Chessgi, it's also unlikely, because the threat of having your promoted Pawn captured may often lead Chessgi players to promote to something weaker than a Queen.

Of the 14 games that may be played in the tournament, I have now created presets that enforce the rules for 10 of them. I expect I should be able to do Pocket Mutation Chess, but the remaining 3 -- Ultima, Maxima, and Takeover Chess -- may be too difficult for me to do.


You wrote: 'someone earlier on this list indicated that the name 'Eurasian chess' implies a chauvinistic western standing, and the writer suggests the name 'Asiropean' chess.' You are reading way too much into what that person wrote. All he/she wrote was 'Hmmmm...so what would an 'Asiropean Chess' look like? :-)' There has never been any suggestion from anyone but you that the name 'Eurasian Chess' implies any kind of chauvinism. And it's a ridiculous idea. The simple fact is that eurasian is a real English word and asiropean is not.
Yes, language is fun to play with. And let me put to rest any suspicion of eurochauvisnism on my part by mentioning that I regard Asia as a much better rock group than Europe. :)

The rules for Chessgi and Eurasian Chess have been programmed into the new presets. So, even if you were unsure of the rules, you couldn't move illegally. Michael Howe gave you an accurate answer for Chessgi. In Eurasian Chess, the rule is that a Pawn may not check a King unless it can promote. I originally based the promotion rules in Eurasian Chess on those in Grand Chess, and in programming both games in the same timeframe, I came to notice some disparities between them that I hadn't paid attention to before. In particular, in Grand Chess, a Pawn may check the King even if it can't promote. I'm considering changing the rules of Eurasian Chess to more exactly match the promotion rules of Grand Chess, including allowing optional promotion on the eighth and ninth ranks, but I'll let this tournament be a trial run with the original promotion rules of Eurasian Chess. As for Maxima, Roberto Lavieri can answer your questions.
Your first rule is the same as the first rule in Parton's game Contramatic Chess.

So far, I have the preferences for myself, Mark Thompson, Antoine Fourrière, Carlos Carlos, Roberto Lavieri, Mike Nelson, and Gary Gifford. A few days ago, I emailed everyone I hadn't gotten preferences from, plus Mike Nelson as an oversight.
As of right now, 7:30 PM EST, I now have preferences from Michael Howe, Mike Madsen, and Thomas McElmurry. These are in additions to those mentioned previously.
25 comments displayed
Permalink to the exact comments currently displayed.