Check out Symmetric Chess, our featured variant for March, 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/Ratings for a Single Item

Earlier Reverse Order LaterLatest
Game Courier History. History of the Chess Variants Game Courier PBM system.[All Comments] [Add Comment or Rating]
stephane burkhart wrote on Wed, Jun 13, 2007 07:12 PM UTC:
I would appreciate to see my game 'mapped chess' in Game translation, but
the task looks too heavy for me. As It took me quite a time to developp it
in ZoG format, I would be happy with an automatic translator zrf->Game.
Did you already think about it ?

George Duke wrote on Fri, Jun 15, 2007 05:01 PM UTC:
Several of my games around March 2007 were posted Win for my opponent, and they were definitely not timed or finished games, just delayed moves of 2 or 3 or 4 weeks. My concurrent Kibitz Comment shows Falcon Chess game in progress removed to finished game after my move minutes ago, win 'JeJu'(loss Duke). What happened? I just made my next move 18, or 20, whatever, Rook to e8 Check. Thank you in advance for continuing the game, JeJu, or by way of Editor.

🕸💡📝Fergus Duniho wrote on Tue, May 1, 2012 01:40 PM UTC:
Since I've been neglecting the History page of late, I've decided I should post about changes to Game Courier on this page rather than on other pages. I have recently been focusing on revamping the whole site, writing new headers for all pages on this site. The pages in the play subdomain have a different header than the pages in the main domain, but the two headers share features in common. They both have a site menu on the left, and they both have forms to login or a personal menu on the right. The site menu on the left often includes a Related Pages submenu whose contents varies from page to page.

In the play subdomain, I have been integrating the functionality of these menus with Game Courier. The buttons that used to appear at the top of Game Courier near the board have been removed, and their links have been placed in the menus. The site menu includes a Game Courier submenu with most of these links. The link to the rules and the link to the specific preset you are using have been moved to the Related Pages submenu. The URL provided for the rules is used to determine the ItemID to use for the Related Pages submenu, so that it gives you pages related to the game you're playing instead of pages related to Game Courier. This includes a submenu for games by the same inventor and a submenu for presets by the same programmer. Both of these are identified with the person's name, so that credits for the game and preset appear in the Related Pages submenu. There may be two inventor submenus when a game has a co-inventor. These menus may help direct you to other games you would like, and when there is a bug in a preset, the "Coded by" submenu identifies who you should contact about it. The "Your Games" link appears in the personal menu when you are signed in, and a "Your Games" link also appears on the page when you have just sent a move.

🕸💡📝Fergus Duniho wrote on Thu, Jul 19, 2012 04:54 PM UTC:
I have added a new feature to Game Courier. It was designed with tablets in mind, but it may also be used with a monitor. There is now a play mode, designed for using your tablet or monitor as a game board while playing against someone at your physical location. It is similar to solitaire mode, which could be used for the same purpose, except that it removes the header and other text above the board, including echo text, so that the board remains in a fixed position without any need to scroll the screen to see all of it, and it keeps the board in a fixed orientation. Before using it, you should customize the board to fit your screen. Because it uses the server, it requires an internet connection. You might use it to play chess variants with a friend in various locations, such as study hall, home, church, a library, a cafe, the back seat of a car, etc.

🕸💡📝Fergus Duniho wrote on Wed, Aug 1, 2012 01:11 AM UTC:
I have added a new feature to tablet play. When you're playing with the Play form, and your browser's user agent string reveals that you are using a tablet, it will turn pieces upsidedown for the second player. This allows you and your opponent to sit on opposite sides of the same tablet and each see the pieces from your own orientation when it is your turn. This will also give you a visual cue that it is your turn.

Note that this works only for pieces that do not normally flip. It will not flip Shogi pieces. Otherwise, they would have the wrong orientation. Since the visual cue of flipping the pieces is not available for Shogi, it also mentions whose turn it is to move underneath the form.

If you don't want pieces to flip, because you and your opponent are looking at your tablet from the same orientation, you can turn it off by changing your browser's user agent to one for a desktop. If your user agent includes one of these keywords--Android, iPad, Tablet, or Mobile--in any case, it will flip pieces for the second player. If these keywords are all missing from your user agent, then it will not flip the pieces. On both the iPad and Android tablets, you can get browsers that let you change the user agent. On the Android, these include Boat Browser, Dolphin, and Opera. The iPad also has Dolphin and Opera, and I tested Dolphin. On the iPad, Dolphin avoids the term user agent, but it lets you turn desktop mode on or off. When it's off, pieces flip, and when it is on, they don't.

🕸💡📝Fergus Duniho wrote on Sat, Mar 2, 2013 03:28 AM UTC:
I have begun to make Game Courier maximize the board size on mobile devices. Using window dimensions provided by cookies set with JavaScript, it automatically sets a scaling factor for grid-based boards rendered as images. This scaling factor is set to allow the board to be as large as it can on a mobile screen, and it overrides the value normally set for Scale. The device should be turned to the orientation (landscape or portrait) that best fits the board. It will usually be too big for one orientation but fit well in the other. Until cookies are set, it will sometimes be necessary to refresh the page until board size changes to fit the screen.

If you don't want to use this feature, you can render a board as a table or as CSS, or you can change the user agent for your browser so that it doesn't get recognized as a mobile device.

Here are technical details. Two cookies are kept, one for the landscape dimensions, and one for the portrait dimensions. Only one cookie will be set at a time, that being the one matching your tablet's orientation. For boards that are wider than they are tall, such as for Shogi, Crazyhouse, and 10x8 boards, the landscape dimensions will be used to find the best fit for the board. For boards that are taller than they are wide, such as Chinese Chess, the portrait dimensions will be used. When the appropriate dimensions are not available, it will make do with dimensions for the other orientation, switching the width and height. When no cookies are available, it will not resize the board, and it will allow zooming by touch. Otherwise, so that it can resize the board appropriately, it will disable zooming by touch.

Ideally, I would like to set the zooming factor, so that it works for any board rendering. But it gets complicated, because I don't have all the information on board size until after the zooming factor gets set in the meta tag, but what I've tried hasn't worked. So, instead, it makes use of Game Courier's ability to resize boards rendered as images. Alternately, I would like to use CSS to resize the board, but the CSS that resizes an image does not resize the AREA MAP that covers it. Maybe I could use CSS to resize a CSS rendered board, but then I would have to resize the pieces too. If I did that, I suppose I could use CSS to change the sizes of pieces on table boards too. It's something to look into down the line.

🕸💡📝Fergus Duniho wrote on Tue, Mar 5, 2013 12:49 AM UTC:
Instead of trying to make one solution fit all rendering methods, I have begun to implement scaling for every rendering method that didn't already have it. The PNG, GIF, and JPG methods already had scaling. These methods resize the image generated for the diagram. For boards rendered as tables, it changes the width and height values for table cells and piece images. This is all done in HTML without affecting the graphics used to display the pieces, allowing them to be cached and reused. For boards rendered with CSS, CSS is used to resize the board, and adjusted width and height values in the IMG tag are used to resize the pieces. I tried a purer CSS solution at first, but it had glitches. Like scaling with tables, this does all the rescaling by changing the HTML, not by making new graphic images. As was originally intended with CSS rendering, this allows the same graphics to be cached and reused. Finally, ASCII rendered boards are rescaled by adjusting the point size. Since this is done with CSS, I don't know if it will work with Lynx.

I have not yet implemented scaling for every board shape, and I have not yet made use of the rescaling for optimizing the board display in mobile devices. I'll do this in due time.

🕸💡📝Fergus Duniho wrote on Thu, Mar 7, 2013 04:43 AM UTC:
I have added some more fonts to Game Courier, these being Arial, Plantin, Baskerville Classico, New Times Roman, Palatino, Chicago, Topaz New, and Georgia. I have also begun to modify the CSS and Table rendering methods to use fonts. Unlike the PNG, JPG and GIF methods, these require fonts to be on your computer. Instead of using a font on the web site, they set the value of font-family to a list of font names, usually ending with serif, sans-serif, or monospace. I added some of the new fonts, because they are common in either Windows or Macs. Topaz New is based on the most common Amiga font. Plantin is generally my favorite serif font, and Baskerville is generally another favorite. This provided a larger set of web safe fonts. I then added the names of known and hypothetical lookalikes.

🕸💡📝Fergus Duniho wrote on Thu, Mar 7, 2013 10:19 PM UTC:
After comparing the fonts, I have removed Nadine and Times New Roman. Nadine is a wide, bold version of Plantin, which lacks Plantin's elegance. Times New Roman is very close to Centime, and where they differ, I prefer Centime. Instances where Nadine was used will be replaced with Plantin. Since I added Times New Roman only last night, I assume I don't have to correct for instances where it is used. In the font lists used for client side fonts, Times New Roman, along with Times, is included as a substitute for Centime, and Nadine is included as a substitute for Plantin after the Plantin lookalike Aldine 721 BT.

🕸💡📝Fergus Duniho wrote on Thu, Mar 7, 2013 10:40 PM UTC:
I've also removed Arial for being too close to Helvetica.

🕸💡📝Fergus Duniho wrote on Sat, Mar 9, 2013 04:39 AM UTC:
I have removed support for drawing hexagonal boards as HTML tables. This method existed only because I made it before I came up with better ways to render hexagonal boards. It appears to be broken anyway, and I was already recommending against using it. I have removed mention of it from the documentation. Any games that did render hexagonal boards as HTML tables will now render them as GIF files.

I have also removed support for using the square shape with the CSS method. When this combination appears, the grid shape will be substituted. This works virtually the same, since the default values for nextfile and nextrank match the sizes of the squares in the tiled backgrounds. This fixed a bug caused by changing the shape in Shogi from grid to square.

I made this change to Shogi, because I also fixed how square boards get rendered as graphic images. When a rank or file has a null space for a marker, its height or width gets reduced to the Border Size, and nothing gets displayed in it. This allows the PNG, JPG, and GIF methods to produce output that looks more like the output of the Table method. Since the default preset for Shogi uses the Table method, and its default background image does not match the table results, I changed its shape to square, so that when a user selects PNG, JPG, or GIF without changing the shape, the board won't suddenly look completely different.

🕸💡📝Fergus Duniho wrote on Fri, May 2, 2014 05:27 PM UTC:
I fixed up how Game Courier was displaying Shogi boards. Unlike most of the boards here, some of the boards I made for Shogi have coordinates written on them. This throws off the symmetry of the boards. The normal assumption for any board image is that the playing area is centered in the board image. But the playing area is not centered in the board images for Shogi with coordinates already drawn on them. For these boards, I manually adjusted the $offy variable, which is normally calculated on the assumption that the playing area is centered, and I set up a flag called $drawcoordinates, which can be set to false for these boards.

I could not find a perfect value for $offy, though, because some Shogi pieces are optimized, and some are not. All the ones I made are optimized, meaning that the image file does not include anything above, below, or to the sides of the piece image. But I've also included Kinki and Ryoko images, which are all the same dimensions, irrespective of the piece size. And I can't easily optimize these, since the images include shading, so that the area outside the piece is not a single uniform color. So I have compromised on a value for $offy that roughly centers the optimized pieces and keeps the Kinki and Ryoko pieces from spilling onto neighboring spaces.

Another issue with the Shogi boards was that I made boards in two sizes. Besides the ones with coordinates, I made some without coordinates, which have narrower spaces between the board and the off-board areas. So the code now recognizes which size board is being used for Shogi and adjusts the file widths accordingly.

When playing Shogi or other games using the same boards, you can now choose from all the Shogi boards available. Since boards with coordinates are paired with upside-down versions with the coordinates right-side up, the list now includes only one board from each list of paired boards. Depending on your side, the appropriate board will be used.

Finally, I updated the code for customizing boards when playing, moving pieces, or viewing a game.

🕸💡📝Fergus Duniho wrote on Mon, May 5, 2014 05:29 PM UTC:
I may have lost some code for scaling, due to needing to replace my computer and/or SSD, then uploading old files. So I'm continuing to work on code for scaling again. I have just added code to draw_grid_css.php for scaling. Since this is for the CSS rendering method, I have used CSS for scaling. It scales with the transform: scale(x,y) property. When it scales larger, I put another DIV around it to fix problems with text flow around it. This should work in browsers supporting transform, which include Internet Explorer 10 and Firefox.

🕸💡📝Fergus Duniho wrote on Mon, May 5, 2014 07:34 PM UTC:
I added scaling to draw_square_table.php. This works by adjusting HEIGHT and WIDTH values for table cells and images. I temporarily had a problem with it, but it was due to switching height and width measurements. It now works fine.

🕸💡📝Fergus Duniho wrote on Thu, May 15, 2014 06:19 PM UTC:
I have added a Resign button to the form for moving. It will submit the form with "resign" as the move. As with any other move, you will still have to verify that you intend this as your move.

🕸💡📝Fergus Duniho wrote on Sat, May 17, 2014 01:19 AM UTC:
Today I have been working on making Game Courier more mobile-friendly. I have programmed most boards rendered as tables or images to resize to fit the screen on a mobile device. For this to work, the browser must request the mobile version. Tablet browsers give you the option of seeing the desktop version, and if you do, it will not automatically resize the board. I have been testing it on my Kindle Touch, and the main problem I've been having is that the Kindle's browser will resize the whole screen to fit everything in it. So if some page element makes the screen too wide, it will cause the board image to appear smaller. So I have been working on removing or changing page elements that require more screen width. I have removed file paths from the footer, and for the mobile version, I have broken up form elements into shorter lines, and I have removed the comments from the footer.

I have plans for making all boards automatically resize, and for adding links for making and reading comments to the menu.

I do not have a cell phone. If you have one, it would help me out if you would let me know how it works on your cell phone.

🕸💡📝Fergus Duniho wrote on Tue, Nov 17, 2015 03:26 AM UTC:

I have started to implement the ability for Game Courier to show you your legal moves and to use JavaScript to catch and prevent illegal moves. This will work only for games for which the rules have been programmed in GAME Code. Support for this must be added on an individual basis, and so far, only boards of squares displayed as tables are supported. At present, I have it working for only one game. This is my second preset for Chess. It seems to work well except that it doesn't yet recognize castling moves. Once that is fixed, I will implement it in other games and explain how other developers can add this ability to their games.


🕸💡📝Fergus Duniho wrote on Tue, Nov 17, 2015 04:40 PM UTC:
It now works for castling, and I have added support for CSS. It works by using a GAME Code subroutine to make an array of all legal moves. This subroutine is based on the stalemated subroutine and may be used in place of it. The difference is it goes through all possible moves, while the stalemated subroutine would exit as soon as it found one legal move. To use it in place of the stalemated subroutine, you need to add a not. So, "not sub legalmoves" can be used in place of "sub stalemated" when checking for checkmate or stalemate. On second thought, I could replace the stalemated subroutine with a modified version of legalmoves that reverses the return value. This would make implementation of this into multiple games quicker, because the presets themselves wouldn't have to be rewritten to use legalmoves instead of stalemated. Still, care will have to be taken to make sure the subroutine used in a particular game matches its rules exactly. Since the legalmoves subroutine goes through all possible moves, including castling, which had been skipped by stalemated, it may need more finetuning for specific games. Since it makes this array using the rules of a game programmed in GAME Code, this option will not be available for a game unless its rules have been programmed.

Each entry in the array is an array of two coordinates. The first is the origin of the move, and the second is the destination. PHP copies this array into JavaScript, which then uses it to know which spaces a piece may move to. It uses this information to display the spaces a piece may legally move to, and it uses it to catch and prevent illegal moves. This will only work for moves made with the mouse. Any move may still be entered manually, and if it is, it will be up to the GAME code program to evaluate the legality of the move. When a game's rules have not been programmed, and the legalMoves array in JavaScript is null, it will not display legal moves, and it will allow any move.

🕸💡📝Fergus Duniho wrote on Wed, Nov 18, 2015 04:40 PM UTC:
Displaying legal moves now works for games displayed as images, including hexagonal boards. Now that I have added support for all major types of rendering, it should be quicker to add support for custom shapes.

🕸💡📝Fergus Duniho wrote on Sat, Nov 21, 2015 08:52 PM UTC:

For boards using squares, the last move made should now be highlighted. A dotted border will be over the vacated space, and a solid double border will be around the piece that just moved.


🕸💡📝Fergus Duniho wrote on Wed, Dec 2, 2015 03:06 AM UTC:
I added a "Run" button to Edit mode. This will run the code without making any moves, and it will display any output at the top of the page. This output would normally be hidden when playing games, though visible in the source code. The "Run" button is mainly for using the Pre-Game Code area as a place to test code without going through extra steps of saving the code, going to the menu, and then starting to play a game just to see what the code does. Now you can just click "Run" to see what your code does.

🕸💡📝Fergus Duniho wrote on Thu, Dec 3, 2015 01:05 AM UTC:

I am extending GAME Code to better support Lambda functions. This is an anonymous, unnamed function. I have created a new variable type for storing functions. Although a function is simply stored as an array, I wanted to know when an array is supposed to be a function. So I created a PHP class called Lambda, which holds an array that represents a function.

I created the lambda operator for expressions. This will convert an array, a string, or the function associated with a function name to a Lambda object. This can be used with the fn operator to run a Lambda object as a function.

One immediate consequence of this is that you can store functions in variables, and you can call a function with a variable instead of a function name. For example:

set a lambda (* #0 #1);
set b fn #a 6 8;

The second line multiplies 6 by 8 and sets b to 48.

I am also working on expanding some built-in functions to make lambda functions more useful. Here's an example of an expression using a lambda function to find the location of the Black King:

set k anytrue lambda (#0 onlyif == space #0 k) spaces;

The anytrue function, if given a lambda function as its first argument, goes through all the values of an array given as a second argument, calling the function for each value in the array until it finds a true value. The value from the array goes into #0. If the array element is an array itself, the function may have more than one argument. For example:

set k anytrue lambda (#0 onlyif == space #0 #1) ((e1 k) (e8 k) (g1 N));

Because a string can be converted to a lambda function, it is now possible for the program to write a function and call it. More on this later


🕸💡📝Fergus Duniho wrote on Tue, Dec 29, 2015 11:15 PM UTC:
I redesigned the form for inviting someone to play a game, I deprecated the Pace time control setting, leaving it out of the form, and I updated the automatic time control settings.

🕸💡📝Fergus Duniho wrote on Fri, Apr 1, 2016 07:33 PM UTC:
Because it looks like many invitations have not been going to the cvgameroom of late, I modified Game Courier to send email from the [email protected] address unless "Allow scripts to forge my email address when sending email on my behalf" is checked in your profile. My hypothesis for why the cvgameroom wasn't getting any emails was that it had started to block emails forged from this site. And it looks like I was correct. The emails it sent from [email protected] when I just issued some invitations all made it to the group. Since email from this address is coming from its own domain, it is not being detected as forged, and it gets through.

Also, using this address will help keep the email addresses of player's away from bots that harvest email addresses for spam, and this greater privacy may encourage more people to use Game Courier.

The [email protected] address is only for sending email from Game Courier. It is not intended for receiving email or for sending personal emails. That's why it's okay for me to mention it many times in this message.

🕸💡📝Fergus Duniho wrote on Sat, Apr 2, 2016 09:00 PM UTC:
If you have written Game Courier presets, you may now post a written description of the rules. Game Courier's Edit mode includes a new form field for this. You may write your description of the rules in HTML. So that you may display piece images that match the current set, you may use the showpiece.php script with the piece parameter as an image URL in an IMG tag. The piece parameter should match the piece label used by the set. This script also takes a set parameter, but Game Courier will add this one in automatically.

This same script may also be used to display piece images on rules pages. Just enter both the set and piece parameters when you use it that way.

25 comments displayed

Earlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.