[net.chess] chessmail - a program for exchanging moves by UNIX mail

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