dave@utcsrgv.UUCP (Dave Sherman) (11/17/83)
I posted this a week ago, but it seems not to have made it to a lot of sites, so here goes again... ==================================================================== Now that the ladder is underway, I wonder if anyone has come up with a clean mechanism (under Berkeley Mail) for exchanging moves and recording them. I think that each message should contain the entire game so far, so there's no confusion. But obviously, you shouldn't have to retype the game. Sure, you can muck around with an editor and extract the current game from a file, append to it and mail it back, but has anyone come up with something better? The ideal system would let you do the following: 1. Look at the game so far. 2. Easily append your opponent's last move to the game (if some standardized mail format can be designed, such as a line in the message beginning with the string "MOVE:", this could even be done automatically). 3. Check that the last move appended is legal, and display the current board (this should be easily done by invoking /usr/games/chess, sending it "manual" and the moves so far, then a CR to get it to display the board). 4. Accept your latest move, check it for legality, and mail it off to your opponent. The perfect interface would be something like this: I get mail from foobar!joe, and it reads: From ihnp4!foobar!joe Fri The 13 00:00:00 1983 Subject: chess move foobar!joe - utcsrgv!dave 1. e4 e5 2. Nf3 Nc6 MOVE: Bc4 I simply type "s |chessmail", which for those who aren't familiar with Berkeley Mail means send this output along a pipe to the program "chessmail". (For people with v7 mail, you would type "s junk" followed by "!chessmail < junk".) The chessmail program will then take over, and do the following: 1. recognize the header, so I can have games going with different people at the same time. 2. append the move to the current game score, with the correct number. 3. ignore anything else in the message, so joe can stick in a personal greeting if he wishes. 4. invoke /usr/games/chess, send it the manual game so far, and accept commands from my terminal. If I type a CR or a move, it will just pass it on to /usr/games/chess, so I can see the game so far if I want. Once I've typed a move, it will accept "ok" to add that as my move. 5. Once I've ok'ed a move, it will go away and invoke mail to send it back to foobar!joe. This kind of mechanism would be easy to use and at the same time not require the person at the other end to have the program. All he would have to do it type "MOVE:" on the beginning of his next move when mailing. A smart version of chessmail would also do the following: 1. Warn me about games for which I haven't received a reply in the last X days, and optionally send out another copy of the move in case uucp may have failed. 2. Automatically send final game scores to ihuxe!rainbow. 3. Remind me about games for which I haven't made a move since receiving a reply. (Perhaps an invocation of "chessmail -check" would be useful in one's .login or .profile.) 4. Be invocable directly from the shell, and delve into one's mail file looking for mail with the subject line "chess move", rather than being explicitly forked off from Mail. Any other ideas? rainbow, you must have some, since you have so many games going at once. I'd love to write this program. Right now I don't have the time to do so, but I'm certainly willing to collect suggestions. Post useful suggestions to the net so we can get our collective wisdom together. Dave Sherman Toronto -- {allegra,cornell,decvax,ihnp4,linus,utzoo}!utcsrgv!dave -- {allegra,cornell,decvax,ihnp4,linus,utzoo}!utcsrgv!dave