Comments by FergusDuniho
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.
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.
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.
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.
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.
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.
I didn't. I modified one script to make the appropriate adjustment when someone opens a log with Game Courier.
It looks like someone tampered with the set file it was using, replacing the Lion pieces with HalfDuck pieces. I have now corrected this.
Can you show me a sample game that ends in a position in which an illegal en passant is allowed?
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.
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.
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.
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.
That's correct. Thanks for saving me the trouble, Greg.
Pages have authors, not inventors. Someone who programs a preset counts as an author. The inventor exclusively refers to the game inventor.
The directory /membergraphics/MZchess-with-pawns/ does not exist. There is also no file called chesswithpawns.zip anywhere on the website.
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.
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.
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.
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.
If that address won't receive the email for changing your email, then it won't receive other emails from us. If that's important to you, then I recommend using another address.
Once again, the site was offline, and I booted it back up. This time, it was down for nearly 14 hours, and I discounted that much from interrupted moves.
The problem is probably that your email address is not receiving email from us, or it is going into your spam folder. If you can't find the email in your spam folder, try a different email address.
25 comments displayed
Permalink to the exact comments currently displayed.
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.