home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.misc
- From: ROSS@emf780.den.mmc.com ("Perry R. Ross")
- Subject: v28i096: ldb - Play backgammon by e-mail, Part04/05
- Message-ID: <1992Mar13.035553.11882@sparky.imd.sterling.com>
- X-Md4-Signature: c5d99c7e611cf0b553629092ef802c0b
- Date: Fri, 13 Mar 1992 03:55:53 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: ROSS@emf780.den.mmc.com (Perry R. Ross)
- Posting-number: Volume 28, Issue 96
- Archive-name: ldb/part04
- Environment: UNIX, C, VMS, VAXC, CURSES, 32BIT
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 4 (of 5)."
- # Contents: ldb.man
- # Wrapped by ross@emf780 on Tue Mar 10 09:24:25 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'ldb.man' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'ldb.man'\"
- else
- echo shar: Extracting \"'ldb.man'\" \(29974 characters\)
- sed "s/^X//" >'ldb.man' <<'END_OF_FILE'
- X.\" ldb.man 8/4/91
- X.\"
- X.\" Copyright 1991 Perry R. Ross
- X.\"
- X.\" Permission to use, copy, modify, and distribute this software and its
- X.\" documentation without fee is hereby granted, subject to the restrictions
- X.\" detailed in the README file, which is included here by reference.
- X.\" Any other use requires written permission from the author. This software
- X.\" is distributed "as is" without any warranty, including any implied
- X.\" warranties of merchantability or fitness for a particular purpose.
- X.\" The author shall not be liable for any damages resulting from the
- X.\" use of this software. By using this software, the user agrees
- X.\" to these terms.
- X.\"
- X.TH LDB 1 "September 25, 1991"
- X.nh
- X.nr si 5n
- X.ie \nT .pl \nTv
- X.UC 4
- X.SH NAME
- Xldb \- Play backgammon by e\-mail
- X.SH SYNOPSIS
- Xldb [options] [input files...]
- X.br
- X.SH DESCRIPTION
- X.I Ldb
- Xallows two people to play backgammon over a
- Xnetwork using electronic mail. It runs on character\-oriented
- Xterminals, or emulators thereof, using the
- X.I curses
- Xscreen package. It will run on most UNIX dialects, as
- Xwell as VAX\-C under VMS.
- X.I Ldb
- Xwill display a picture of the board, prompt the user to
- Xenter a move, check the move for legality,
- Xand send the move to the opponent.
- XWhen it arrives, it will be displayed on the opponent's screen,
- Xafter which the opponent will be prompted for a move to
- Xbe sent back.
- X.SH "IF YOU'RE IMPATIENT..."
- X.PP
- XIf you're one of those people that don't read manuals,
- Xthe README file has a quick overview, or you can
- Xskip ahead to the section entitled "STARTING A GAME".
- X.SH FEATURES
- X.IP "Multiple Games"
- X.I Ldb
- Xcan keep track of an arbitrary number of games simultaneously,
- Xand will display them one at a time for you to play.
- XYou can exit from
- X.I ldb
- Xat any time; when you run ldb again, it will pick up
- Xyour games where you left off.
- X.IP "Move Checking"
- XBoth your moves and your opponent's moves are checked for legality.
- XThis includes:
- X.IP \-
- XLanding on an occupied point.
- X.IP \-
- XBearing off before your inner table is full.
- X.IP \-
- XTrying to move pieces that are on the board when you
- Xhave a piece on the bar.
- X.IP \-
- XTrying to bear off a piece
- Xwhen there is a piece on a higher point, and
- Xthe roll is not being used exactly.
- X.IP \-
- XTrying to leave a usable move unused.
- X.IP \-
- XTrying to leave a move unused when it is usable and has
- Xa higher roll than the move that is used.
- X.IP \-
- XTrying to double when you doubled last.
- X.IP "Message Reliability"
- X.I Ldb
- Xdetects (and rejects) duplicate messages, and can
- Xregenerate lost messages.
- X.IP "Remote Start"
- X.I Ldb
- Xcan start a game between two players on remote hosts.
- XThis could be used to set up a "game starter" host,
- Xwhere people interested in finding new opponents could
- Xbe matched by some criteria (such as ability, or by a
- Xtournament schedule), and have their games started
- Xautomatically.
- X.IP "Game Value"
- X.I Ldb
- Xdetects the end of the game, gammons, and backgammons,
- Xand notifies both players of the game value when the
- Xgame is over.
- X.PP
- X.SH OPTIONS
- X.IP "\fB-read \fP"
- XMail is read, and the games are updated and saved.
- XThe user is not prompted for his moves.
- X.IP "\fB-play \fP"
- XAny games that are waiting for local input are
- Xdisplayed for the user to process. No mail is read.
- X.IP "\fB-color xy\fP"
- XThe colors for any games started are set to x and y.
- XThe first color is played by the local user, and the
- Xother is played by the opponent. Legal color
- Xcharacters are r(red), w(white), and b(black).
- XThe default is "\-color rw". This argument is positional,
- Xand only affects games started after it has been scanned.
- X.IP "\fB-direction up/down\fP"
- XThe direction of play for any games started by the local user
- Xis set to the specified value.
- XThe default is "\-direction up". This argument is positional,
- Xand only affects games started after it has been scanned.
- X.IP "\fB-myaddr addr\fP"
- XYour mail address is set to
- X.I addr
- Xfor games started after the
- X.I \-myaddr
- Xoption is scanned. This overrides the address
- Xspecified in
- X.I .ldbrc.
- X.IP "\fB-start user\fP"
- XA game is started with the specified user.
- XThe
- X.I user
- Xargument may be any e\-mail address that is valid for
- Xyour host. Some e\-mail addresses will need to be quoted
- Xif they contain shell metacharacters.
- X.IP "\fB-remotestart user1 user2\fP"
- XA game is started between user1 and user2. The local
- Xhost sends a remote start message to user1 instructing
- Xit to start a game with user2. The local host
- Xdoes not participate thereafter in the game.
- XFor the purposes of the \-color and \-direction options,
- Xuser1 is considered the local user.
- X.IP "\fB-broadcast file\fP"
- XThe specified file is mailed to all current opponents.
- XThis is useful for announcing vacation absences, etc.
- X.PP
- XThe default mode for the \-read and \-play options
- Xis to do both. This is also what happens if both
- X\-read and \-play are given. Any arguments not beginning
- Xwith \- are treated as input files and are searched for
- Xincoming moves from opponents. It is not an error for
- Xany of these files to not exist.
- X.PP
- X.SH SCREEN
- XThe screen is divided into seven basic sections. These are:
- X.IP \fBOpponent\fP
- XThe e\-mail address and personal name of the opponent are displayed
- Xon the top line of the screen. This can help identify the
- Xgame if you have many games in progress at once.
- X.IP "\fBBoard Label\fP"
- X.I Ldb
- Xdisplays one of three possible board images at a time;
- Xthe name of the board currently displayed is shown on
- Xthe second line of the screen.
- XThe significance of these three boards is explained below.
- X.IP "\fBBoard\fP"
- XThe board is displayed near the left side of the screen, and takes
- Xup most of the screen area. It consists of an outline, drawn
- Xwith ASCII characters, and 28 "points" where pieces can reside.
- XOf these, 24 are the normal points making up the main body of the
- Xboard (numbered 1\-24),
- X2 are the "BAR" points, located between the left
- Xand right halves of the main board, and 2 are the "OFF"
- Xpoints (where pieces go when they are borne off), located to the
- Xleft of the board. Pieces are represented by lower case letters,
- Xtaken from the set [bwr], and represent the colors black, white,
- Xand red, respectively. To help you remember which direction you
- Xare playing, there are arrows drawn at the four corners of the
- Xboard indicating your direction of play.
- X.IP "\fBDoubling Cube\fP"
- XThe current value of the doubling cube is displayed in reverse
- Xvideo on the left side of the screen. The cube will appear
- Xon the side of the board where the home board of the owner
- Xof the cube is located, or in the middle if neither player
- Xhas doubled. For example, if the player whose home board is
- Xat the bottom of the screen doubled last, the cube will appear
- Xbeside the top of the board.
- X.IP "\fBMove Blocks\fP
- XThe move blocks are located on the right of the screen. There
- Xare two move blocks; one for you, and one for your opponent.
- XYou will use your move block to enter your moves, and you will
- Xsee your opponent's moves displayed in his move block. A move
- Xblock consists of a header, which identifies the owner of the
- Xmove block, and two columns of either two or four lines.
- XEach line in a move block is one roll, and shows the value
- Xof the roll (in the range 1\-6) and how that roll has been used.
- XIf doubles were rolled,
- Xthe third and fourth lines will also
- Xbe used to display the two additional rolls that may be used.
- X.IP "\fBCommand Box\fP"
- XThe bottom right corner of the screen contains a small box
- Xthat displays the commands that are legal at any given time.
- XYou can execute a command by typing the first letter; you
- Xshould not hit return afterwards. There may be legal commands
- Xother than those shown in the command box, depending on
- Xthe state the game is in.
- X.IP "\fBMessage Area\fP"
- XThe bottom 6 lines of the screen are reserved for messages of
- Xvarious types. The bottom line is used for error and informative
- Xmessages that occur as a game is played. The top line in this
- Xarea displays messages pertaining to the status of a game, such as
- Xblots hit by an opponent's move. The remaining 4 lines are used to
- Xenclose a message to your opponent with your move, and to display
- Xthe one your opponent sent to you. These messages may be up to
- X2 lines of 56 characters.
- X.PP
- X.SH "STARTUP FILE"
- XThe first time you run
- X.I ldb,
- Xit will ask you if you want to
- Xcreate a
- X.I .ldbrc
- Xfile. You should answer "yes", unless you have a reason
- Xnot to. If you want the ldb startup file to be named something
- Xother than
- X.I .ldbrc,
- Xyou should set the environment variable LDBRC to the
- Xname you want before
- Xrunning ldb for the first time.
- XIf you do this, the LDBRC variable must be set
- Xevery time you run ldb.
- X.I Ldb
- Xmoves to the directory in the HOME environment variable,
- Xif it is set, before accessing any files.
- XThis makes all files (including .ldbrc) relative
- Xto $HOME.
- X.PP
- XThe
- X.I .ldbrc
- Xis organized as a sequence of name/value pairs, one per line,
- Xin the format
- X.I "name=value".
- XThere should be no spaces before
- X.I name
- Xor before or after the equals sign. Comments are not allowed.
- XThe following names are defined:
- X.IP myname
- XThis line is where you enter your (human) name.
- XIt is sent to your opponent when a game is started, to
- Xmake things a little more personal. You can put anything
- Xyou like here, of course, but I highly recommend you just
- Xstick to your name; the novelty wears off cute stuff
- Xpretty fast. Also, remember that upper\-case\-only terminals
- Xwent out of style somewhere around the same time as
- XPresident Carter, and I think we're probably better off
- Xwithout both. Enter your name with only the first letter
- Xof each word capitalized, and avoid shouting at your opponents.
- XThis line is mandatory; if you don't want your name
- Xsent to people, you can just put an empty string after the equals,
- Xbut you must have something.
- X.IP myaddr
- XThis line defines your e\-mail address. This is sent to your
- Xopponent when you start a game so they know how to send
- Xmail back to you. For people with multiple mail paths, put
- Xthe one here you use the most (e.g. the Internet domain\-style
- Xpath), and for games that need to use a different address,
- Xuse the
- X.I \-myaddr
- Xcommand line argument to override the path in
- X.I .ldbrc.
- XThe
- X.I myaddr
- Xline is mandatory.
- X.IP gamefile
- XThis line sets the file name that is used to store games
- Xin progress. It is optional, and if it is not given, the
- Xgame file defaults to
- X.I .ldbdata.
- XMy advice, if you care, is that you should avoid
- Xusing a file name containing the string
- X.I games
- Xor any other giveaway string that would let your boss, sysadmin,
- Xor other local Nazi\-type know that you're using
- Xa multi\-million dollar piece of high\-tech equipment to goof off,
- Xwhen you could do that with nothing more exotic than
- Xa rubber band and some spitballs.
- X.IP backupfile
- XThis is the file your old
- X.I gamefile
- Xwill be moved to just before a new
- Xone is created. It defaults to
- X.I ".oldldbdata."
- X.IP mailfile
- XWell, you've got a couple of options here. One is to just put
- Xsome file name here (the default is ldb.rcv) and, when you receive
- Xmail containing an
- X.I ldb
- Xmove, just save it to this file. When you are done reading your mail,
- Xrun ldb, and it will scan this file and extract all your incoming
- Xmoves, just like magic. If your mail program is like most, it will
- Xappend messages if the file you are saving to already exists,
- Xwhich is just what you want.
- X.I Ldb
- Xwill silently ignore moves that it has already seen for games in
- Xprogress, so you don't have to clean them out of your mailfile
- Xif you don't want to.
- X.I BUT,
- Xyou DO need to clean START messages out sometime before the
- Xgame they started ends; once the game is
- Xover and is deleted from the gamefile, ldb will think the START
- Xmessage is a new one and
- Xstart a spurious game. So the best course is to delete all messages
- Xafter ldb has read them.
- X.IP ""
- XFor those fortunate enough to be on real UNIX,
- Xyour second option is to set the mailfile to point to your
- Xactual mail file (e.g. /usr/spool/mail/username), and let ldb
- Xscan your mail directly. This will only work if your system
- Xkeeps mail in ASCII format, but many do. Ldb will not
- Xdelete these messages from your mail
- Xso you will have to. The same note applies here as in the
- Xfirst option regarding START messages; odd things will happen
- Xif you let a START
- Xmessage sit in your mail after the game
- Xit started ends.
- X.IP ""
- XVMS users should read the section entitled "VMS NOTES"
- Xfor more information on extracting mail.
- X.IP sendcmd
- XThis tells ldb how to send a file with your particular
- Xmail command. This string is passed to the system, after making the
- Xfollowing substitutions:
- X.IP " $a" 10n
- Xis substituted with the address to mail to.
- X.IP " $f" 10n
- Xis substituted with the file containing the message.
- X.IP " $s" 10n
- Xis substituted with the subject of the message.
- X.IP "" 5n
- XMost mail systems will work fine with the default, which is
- X.nf
- X mail \-s '$s' $a < $f
- X.fi
- XNote that the $ substitutions are
- Xmade by ldb, not by a shell, and thus are not subject to
- Xany quoting. If you need a $ in the string, use $$.
- XVMS users should use the string
- X.nf
- X MAIL/SUBJECT="$s" $f $a
- X.fi
- Xto send VMS mail (if both you and your opponent are using VMS mail),
- Xotherwise you may need to include a mailer string in your command;
- Xfor example, to send UNIX mail using Wollongong TCP/IP, you would
- Xuse the string
- X.nf
- X MAIL/SUBJECT="$s" $f WINS%"""<$a>"""
- X.fi
- Xand yes, that really is three quote marks after "WINS%".
- X.IP tempfile
- XThis line specifies a temporary file that ldb can use to compose
- Xmail messages. The file will be created in your home directory,
- Xthus avoiding file name conflicts in /tmp. It defaults to ldb.tmp.
- X.IP colors
- XThis is a two\-character string from the set [rwb] (red, white, and
- Xblack, respectively), and defines
- Xyour preferred colors for any games you start. The first character
- Xin the string is the color you will play, and the second is the
- Xone your opponent will play. It defaults to "rw", and is
- Xoverridden by the
- X.I \-color
- Xcommand line argument.
- X.IP direction
- XThis is either "up" or "down", and defines your preferred direction
- Xof play for games you start. The direction of play only refers to
- Xwhether you play toward increasing or decreasing numbered points.
- XAlthough by default upward play goes toward the top of the screen,
- Xthis can be reversed (for your screen only) by the "Invert"
- Xcommand in the Control menu,
- Xaccessible via the
- X.I \-control
- Xcommand line argument. The default for this line is "up",
- Xand is overridden by the
- X.I \-direction
- Xcommand line argument.
- X.IP initialboard
- XAs was alluded to earlier, your screen shows one of
- Xthree possible board images at any time. Although
- Xthe purpose for this
- Xwill be explained later, this line allows you to select
- Xwhich of these three boards should be displayed initially.
- XThe legal values are "before", "after", and "current".
- XThe default is "current".
- X.IP autoroll
- XIf you were the last to double, you have no option
- Xbut to roll the dice when it is your turn. If
- Xautoroll is enabled, ldb will roll the dice for you automatically
- Xin this case. For those that prefer consistency, autoroll
- Xmay be disabled, although attempting to double when you
- Xdoubled last will provoke a nasty (and well\-deserved)
- Xerror message. Possible values for autoroll are "yes" and "no",
- Xwith "yes" being the default.
- X.IP automove
- XEach time you roll the dice, ldb determines how many
- Xlegal ways there are for you to use your rolls. In the
- Xrelatively unusual case where there is only one way
- Xfor you to use your rolls, ldb can automatically apply
- Xthis move to your board before displaying it. Automove
- Xis disabled by default because it's really
- Xpretty annoying. Possible values for automove are "yes"
- Xand "no", with "no" being the default.
- X.IP autodouble
- XOne of the official rules of backgammon allows for
- Xautomatically doubling the game value when the opening
- Xroll is a tie. The rules go on to state that automatic
- Xdoubling is only to be used when the players agree beforehand
- Xon its use and limitations. The method ldb uses to implement
- Xthis somewhat vague rule is to allow each player to specify
- Xa maximum number of autodoubles they are willing to accept in
- X.I .ldbrc,
- Xand for the maximum number of autodoubles applied to any game
- Xto be the lesser of the two players' specified limits.
- XFor example, if you set
- X.I "autodouble=4"
- Xin your .ldbrc, no game you play will ever be autodoubled
- Xmore than 4 times, although the number of tied opening rolls
- Xis obviously not limited. However, if you were to start a game
- Xwith someone who had set
- X.I "autodouble=2",
- Xthat game would be limited to at most 2 autodoubles. If you don't
- Xwant to play automatic doubles, set
- Xautodouble=0, which is also the default.
- X.IP superkey
- XSome people don't have bosses. Some people have private desks.
- XSome people play from home. Some people liked it so much,
- Xthey bought the company. If you're not one of them,
- Xyou may want to enable the superkey function.
- XJust pick a key on the keyboard you never use in ldb, such as the
- Xbackquote, and put a line in
- X.I ".ldbrc"
- Xsetting superkey to the
- X.I "decimal ASCII code"
- Xof the key you want; for example, to use the backquote key,
- Xuse "superkey=96".
- XOnly single\-character keys are allowed, and
- Xthe key you select will not be usable for normal purposes
- Xwithin ldb. Make it one you can hit in a hurry.
- X.IP supercmd
- XIf you'd rather have a program of your choice come up
- Xinstead of the shell when the superkey is pressed,
- Xput it on this line. It will be passed
- Xunchanged to a shell via the system() function.
- X.PP
- X.SH "STARTING A GAME"
- XBefore you will be able to use the most important features
- Xof ldb, such as actually playing backgammon, you will need
- Xto start a game. This is done by using the
- X.I \-start
- Xcommand line argument, along with the e\-mail address of
- Xthe person you wish to play with.
- XFor example,
- X.nf
- X ldb \-start mybuddy@back.gammon.com
- X.fi
- XIf you want to play white, and make your opponent play
- Xblack, use the command
- X.nf
- X ldb \-color wb \-start black@blah.blah.blah
- X.fi
- XSee the
- XOPTIONS section for more details on the available
- Xcommand line arguments.
- XUnfortunately,
- X.I ldb
- Xwill not allow you to play with yourself, but
- Xthat's ok because you'd probably lose.
- X.PP
- XWhen you start a game, a unique
- X.I gameid,
- Xor game identifier, is created using your e\-mail address
- Xand the current time. This gameid is sent to your opponent,
- Xalong with your e\-mail address (so he can send back to you),
- Xand your opening roll. When your opponent receives
- Xyour message, his ldb will roll his opening roll, and
- Xdecide who won. If you won, his ldb will send back
- Xa message telling you to use the opening roll. If he
- Xwon, he will use the opening roll and his ldb will send
- Xa message to that effect. Either way, the game is off
- Xand running.
- X.PP
- XIf, by unfortunate chance, the opening roll is a tie,
- Xyour opponent's ldb will send
- Xyour ldb a message to that effect.
- XThis will cause a new opening roll, but hopefully
- Xnot another tie. A message will be printed telling you
- Xwhat's going on;
- Xjust keep feeding the incoming messages to ldb, and
- Xit will take care of everything.
- X.PP
- X.SH "PLAYING A GAME"
- XWhen you start a game, you roll a die and send that
- Xroll to your opponent, who also rolls a die and
- Xcompares them.
- XIf you won, you will use the opening roll as your
- Xfirst move, so skip on down to the next paragraph.
- XOtherwise, he will have used those rolls,
- Xand they will be displayed in his move block.
- XYou will now find yourself
- Xfaced with five options: Roll, Double, Concede, and Next Game.
- XUnless you are very cocky, I would not suggest doubling
- Xat this point. You could always concede, but I really
- Xthink that would be selling yourself short. If you choose
- X.I "Next Game,"
- Xldb will save the current state of your game and go on
- Xto the next one, but eventually you will re\-run ldb,
- Xat which point you will be faced with this same choice,
- Xand let's face it, you can't run from it forever.
- XSo we're agreed, you should choose "Roll".
- XJust press "r", and watch your roll appear on
- Xyour move block (along the right side of the screen, under the
- Xword "You"). You should see two numbers appear (four if you
- Xrolled doubles), and the word UNUSED beside them.
- X.PP
- X(If you won the opening roll, you should join us here.)
- XDecide which of the rolls you want to use first, and press
- Xthe number of that roll. For example, say you rolled
- X1 6 (good roll!), and you want to move the obvious 8\-7, 13\-7 to
- Xmake your bar point.
- XJust hit "6". Notice the cursor jump up to your move block, beside
- Xthe "6" roll? It is waiting for you to enter the point you want
- Xto move from. Press "1" "3" (don't hit return). You should see
- Xa piece move from 13 to 7, and this fact will be reflected in
- Xyour move block as well. Now, press "1". Again the cursor
- Xjumps to the move block, and you type "8", followed by some
- Xnon\-numeric character such as the space bar (since ldb expects
- Xtwo characters for a point). The second entry in the move block
- Xreflects this move, as does the board. Happy? If not, press
- X"r"; this will reset your rolls to UNUSED and put
- Xthe board back to how it was before you moved,
- Xand then you can enter some different moves. Otherwise, hit "s"
- X(not "q"!)
- Xto send the move. The cursor will jump down to the message area,
- Xwhere you get a chance to enclose a message to your opponent,
- Xperhaps to gloat over the great move you just made.
- XYou only get 2 lines of 56 characters, so keep it short. When
- Xyou are done, press <escape>. Your move is on its way!
- X.PP
- XThere are three shortcuts you can use
- Xafter you have entered your first move:
- X.IP 1.
- XYou can press <return>, which will "repeat" your last move.
- XThat is, your next remaining roll will move from the same
- Xpoint as your last one moved from. This is handy when
- Xusing doubles to move more than one piece from the same point.
- X.IP 2.
- XYou can press <space>, which will "continue" your last move.
- XThat is, your next remaining roll will move from the
- Xpoint your last move ended on.
- X.IP 3.
- XYou can press "p", which will attempt to make the point your
- Xlast move ended on. In our 1 6 example above, you could have
- Xjust hit "p" after you moved 13\-7, and ldb would have figured
- Xout that to make the 7 point with the remaining roll of 1,
- Xit would have to move a piece from the 8 point.
- X.PP
- XIn addition, there is one more shortcut that may be used
- Xwith any roll. If you want to use a roll to bear off
- Xa piece, you can just hit "o". Ldb will locate the
- Xpoint (if any) from which pieces may be legally borne off
- Xby the next unused roll, and make that move automatically.
- XYou can also select a roll, then hit "o".
- X.PP
- X.SH DOUBLING
- XIf you decide to double, just choose "Double" instead of
- X"Roll". You will get to enclose a message, just like when
- Xyou send a move, then your message gets sent. Once you have
- Xdoubled, you cannot double again until your opponent does so,
- Xso ldb automatically selects "Roll" and sends you to the
- Xnext menu. If you don't like this, you can disable it by
- Xsetting
- X.I autoroll=no
- Xin .ldbrc.
- X.PP
- XIf your opponent doubles, you will see a message just under
- Xthe board to that effect, and a menu will come up
- Xallowing you to Accept or Decline the double.
- XDeclining the double means you lose the game for the
- Xcurrent game value. Accepting means that the game
- Xcontinues, but its value is doubled. The current
- Xgame value is shown to the left of the board. After
- Xyou accept, you should see this display move next to your
- Xhome board, indicating that you own the doubling cube.
- X.PP
- X.SH BOARDS
- X.I Ldb
- Xmaintains three board images at all times. These are:
- X.IP 1
- XThe board before your opponent's last move. This is,
- Xof course, the same as the board after your last move.
- XIt is for display purposes only, so you can see your
- Xopponent's move "before and after". The pieces your opponent
- Xis going to move are highlighted.
- X.IP 2
- XThe board after your opponent's last move.
- XThis is the same as the board before your current move,
- Xand it is the one the Reset command uses to erase your moves
- Xif you don't like them. It also shows the condition of the
- Xboard after your opponent's last move, with the pieces he
- Xmoved highlighted.
- X.IP 3
- XThe current board. This is the same as board #2, except any moves
- Xyou have made are also reflected here. Nothing is highlighted.
- X.PP
- XBy default, ldb displays the Current board at all times. If
- Xyou want to see the other boards, use the Board command
- X(provided it is in the current menu). This will cycle through
- Xthe three boards in the order they are listed above. The second
- Xline of the screen tells you which board is displayed. When
- Xyou roll, ldb automatically switches to the Current board if
- Xit is not already up. You can set which of these three boards
- Xis initially displayed via the
- X.I initialboard
- Xsetting in .ldbrc.
- X.PP
- X.SH "CONTROLLING A GAME"
- XThe
- X.I \-control
- Xoption permits you to control your games in
- Xcertain ways. Each of your current games are
- Xdisplayed, one at a time, just as they are when you
- Xare playing, allowing you to perform any of the
- Xfunctions on the control menu.
- XThe control menu has the following commands:
- X.IP "Invert"
- XThis allows you to invert the board for this game. The
- Xboard will invert immediately on your screen, so you can
- Xsee if you like it. Pressing
- X.I Invert
- Xagain will put it back to normal. Inverting the board does
- Xnot affect the point numbering or the color you play,
- Xit merely draws the board with the low-numbered points at
- Xthe top of the screen rather than the bottom. You may find
- Xit easier to make all of your games play a certain direction.
- X.IP "Resend"
- XFrom time to time, messages may be lost due to faulty mailers
- Xor human error. If your last message gets lost, you can
- Xregenerate it with the
- X.I Resend
- Xcommand. There is no harm in regenerating messages, as
- Xldb will ignore duplicate messages. If you and your opponent
- Xhave forgotten whose move it is, the easiest way to get going
- Xagain is for both of you to resend your last message. The one
- Xthat got lost will be accepted, and the game will be off
- Xand running again.
- X.IP "Delete Game"
- XThis command marks a game for deletion. The game is not deleted
- Xuntil you quit, and you can undelete it by pressing D again.
- XNormally, you should not delete a game in this manner,
- Xyou should play until someone wins or concedes. The
- X.I "Delete Game"
- Xcommand can be used to get rid of games where your opponent
- Xdoesn't answer his mail, or doesn't want to play, etc.
- X.IP "Next Game"
- XThe next game is displayed. If there is no next game,
- Xthis choice is equivalent to
- X.I Quit.
- X.IP "Quit"
- XThis allows you to exit from
- X.I "\-control".
- XIf you made any changes to your games, you will be given the opportunity
- Xto save these changes, then ldb will exit.
- X.SH "VMS NOTES"
- X.PP
- XVMS users will have a few problems that UNIX users won't
- X(I mean in addition to having to use VMS).
- XVMS mail doesn't append
- Xmessages to an existing file, it creates new versions.
- XLdb will ignore all but the most recent version,
- Xcausing it to miss moves. There may be some obscure mail option flag
- Xto make it append to a file instead,
- Xbut I cannot find it because quite frankly I'm too lazy to look.
- XThe easiest way around this is to save each message to a different
- Xfile, then give all those file names as arguments to ldb.
- XIf you'd rather save them to the same file, you can make ldb read
- Xall the versions by putting them on the command line, as in:
- X.nf
- X $ ldb ldb.in;1 ldb.in;2 ldb.in;3 ...
- X.fi
- Xbut you should remember not to execute a "PURGE" before
- Xrunning ldb.
- X.PP
- XIf you have the Eunice package, ldb will compile and run under it just dandy,
- Xbut any files created by the Eunice\-compiled version
- X(most notably the games file)
- Xwill be incompatible with the VAX C\-compiled version. Use the
- Xunixtovms command to convert.
- X.PP
- XAs ldb is distributed in "shar" format, you will need some
- Xkind of shell to extract it, or if you're really
- Xdesperate you could do it by hand with an editor.
- XOnce you manage to extract it, you can just type:
- X.nf
- X $ @makeldb
- X.fi
- Xto compile and link it. After that, you'll probably want
- Xto define a symbol such as:
- X.nf
- X $ ldb :== $dua0:[me.ldb]ldb
- X.fi
- Xso you can run it.
- X.PP
- XFor some reason, the screen redraw (control\-L) does
- Xnot work on the VAX\-C curses. You may want to
- X.nf
- X $ SET TERM/NOBROADCAST
- X.fi
- Xbefore running ldb, so that your screen doesn't get messed up.
- XAlternatively, you can fix your screen by just quitting
- Xand re\-running ldb (except while you're entering a message).
- X.SH BUGS
- X.PP
- XA game file created by ldb under Eunice must be run through
- X"unixtovms" before the VAX\-C ldb can read it.
- X.PP
- XThe "Concede" command violates the rules, in that it allows one
- Xplayer to unilaterally settle the game for the current game value.
- XThis could be used to avoid an impending gammon.
- X.PP
- XAn apparent deficiency in VAX\-C curses makes the ^L redraw feature
- Xinoperable, and causes the screen contents to be lost
- Xafter using the supervisor key.
- X.PP
- XLdb should be distributed in vms_shar format too, and the
- Xmanual should be distributed in runoff format. Until then,
- XVMS users are on their own as far as unpacking the code and formatting
- Xthe manual are concerned. Sorry.
- X.PP
- XVAX\-C substitutes
- Xbold for reverse video, which
- Xprevents the cube from looking like a cube.
- X.PP
- XThe messages ldb prints regarding ties, new games, etc. are lost
- Xwhen the first game is displayed. There should also be
- Xmessages for other cases, such as when games are started,
- Xwhen ldb is invoked and there are no games
- Xwaiting for local input, and when no activity has occurred on
- Xa game for a week or so.
- X.PP
- XThe superkey function only works when ldb is waiting for a key.
- XIf ldb is doing something time-consuming, such as calculating
- Xlegal moves, the superkey will not work until the calculation
- Xis complete.
- X.PP
- XLdb should log wins and losses by opponent, and should support
- Xplaying up to a point total, rather than just a single game.
- X.PP
- XLdb could do all kinds of helpful things, such as calculate
- Xa pip count on the fly.
- X.PP
- XThere should be a way to play interactively (using socket connections,
- Xfor example), rather than via e\-mail.
- END_OF_FILE
- if test 29974 -ne `wc -c <'ldb.man'`; then
- echo shar: \"'ldb.man'\" unpacked with wrong size!
- fi
- # end of 'ldb.man'
- fi
- echo shar: End of archive 4 \(of 5\).
- cp /dev/null ark4isdone
- MISSING=""
- for I in 1 2 3 4 5 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 5 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
-
- exit 0 # Just in case...
-