home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Source Code 1994 March
/
Source_Code_CD-ROM_Walnut_Creek_March_1994.iso
/
compsrcs
/
games
/
vmsnet
/
ldb
/
part04
< prev
next >
Wrap
Internet Message Format
|
1993-04-07
|
49KB
Path: uunet!zaphod.mps.ohio-state.edu!howland.reston.ans.net!usc!news.service.uci.edu!unogate!mvb.saic.com!dayton.saic.com!dayvd.dayton.saic.com!ake
From: ake@dayvd.dayton.saic.com (Earle Ake)
Newsgroups: vmsnet.sources.games
Subject: ldb - Long Distance Backgammon [04/16]
Date: 8 Apr 93 10:51:22 EST
Organization: Science Applications Intl Corp - Dayton, OH
Lines: 1147
Message-ID: <1993Apr8.105122.1@dayvd.dayton.saic.com>
NNTP-Posting-Host: dayvd.dayton.saic.com
Xref: uunet vmsnet.sources.games:665
-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+
XVMS`20users`20may`20need`20to`20change`20the`20name`20of`20the`20SMTP`20mailer
V;
Xfor`20example,`20to`20send`20mail`20using`20Wollongong`20TCP/IP,`20you`20would
V
Xuse`20the`20string
X.IP`20""
X.nf
X`20`20`20`20`20MAIL/SUBJECT="$s"`20$f`20WINS%"""<$a>"""
X.fi
X.IP`20tempfile
XThis`20line`20specifies`20a`20temporary`20file`20that`20ldb`20can`20use`20to
V`20compose
Xmail`20messages.`20`20The`20file`20will`20be`20created`20in`20your`20home`20di
Vrectory,
Xthus`20avoiding`20file`20name`20conflicts`20in`20/tmp.`20`20It`20defaults`20to
V`20ldb.tmp.
X.IP`20colors
XThis`20is`20a`20string`20of`20two`20upper`20or`20lower`20case
Xletters,
Xand`20defines
Xyour`20preferred`20colors`20for`20any`20games`20you`20start.`20`20The`20first
V`20character
Xin`20the`20string`20is`20the`20color`20you`20will`20play,`20and`20the`20second
V`20is`20the
Xone`20your`20opponent`20will`20play.`20`20It`20defaults`20to`20"rw",`20and`20i
Vs
Xoverridden`20by`20the
X.I`20`5C-color
Xcommand`20line`20argument.
X.IP`20direction
XThis`20is`20either`20"up"`20or`20"down",`20and`20defines`20your`20preferred
V`20direction
Xof`20play`20for`20games`20you`20start.`20`20The`20direction`20of`20play`20only
V`20refers`20to
Xwhether`20you`20play`20toward`20increasing`20or`20decreasing`20numbered`20poin
Vts.
XAlthough`20by`20default`20upward`20play`20goes`20toward`20the`20top`20of`20the
V`20screen,
Xthis`20can`20be`20reversed`20(for`20your`20screen`20only)`20by`20the`20"Invert
V"
Xcommand`20in`20the`20Control`20menu,
Xaccessible`20via`20the
X.I`20`5C-control
Xcommand`20line`20argument.`20`20The`20default`20for`20this`20line`20is`20"up",
V
Xand`20is`20overridden`20by`20the
X.I`20`5C-direction
Xcommand`20line`20argument.
X.IP`20initialboard
XAs`20was`20alluded`20to`20earlier,`20your`20screen`20shows`20one`20of
Xthree`20possible`20board`20images`20at`20any`20time.`20`20Although
Xthe`20purpose`20for`20this
Xwill`20be`20explained`20later,`20this`20line`20allows`20you`20to`20select
Xwhich`20of`20these`20three`20boards`20should`20be`20displayed`20initially.
XThe`20legal`20values`20are`20"before",`20"after",`20and`20"current".
XThe`20default`20is`20"current".
X.IP`20autoroll
XIf`20you`20were`20the`20last`20to`20double,`20you`20have`20no`20option
Xbut`20to`20roll`20the`20dice`20when`20it`20is`20your`20turn.`20`20If
Xautoroll`20is`20enabled,`20ldb`20will`20roll`20the`20dice`20for`20you`20automa
Vtically
Xin`20this`20case.`20`20For`20those`20that`20prefer`20consistency,`20autoroll
Xmay`20be`20disabled,`20although`20attempting`20to`20double`20when`20you
Xdoubled`20last`20will`20cause`20an
Xerror`20message.`20`20Possible`20values`20for`20autoroll`20are`20"yes"`20and
V`20"no",
Xwith`20"yes"`20being`20the`20default.
X.IP`20automove
XEach`20time`20you`20roll`20the`20dice,`20ldb`20determines`20how`20many
Xlegal`20ways`20there`20are`20for`20you`20to`20use`20your`20rolls.`20`20In`20th
Ve
Xrelatively`20unusual`20case`20where`20there`20is`20only`20one`20way
Xfor`20you`20to`20use`20your`20rolls,`20ldb`20can`20automatically`20apply
Xthis`20move`20to`20your`20board`20before`20displaying`20it.`20`20Automove
Xis`20disabled`20by`20default`20because`20quite`20frankly`20it's
Xpretty`20annoying.`20`20Possible`20values`20for`20automove`20are`20"yes"
Xand`20"no",`20with`20"no"`20being`20the`20default.
X.IP`20autodouble
XOne`20of`20the`20official`20rules`20of`20backgammon`20allows`20for
Xautomatically`20doubling`20the`20game`20value`20when`20the`20opening
Xroll`20is`20a`20tie.`20`20The`20rules`20go`20on`20to`20state`20that`20automati
Vc
Xdoubling`20is`20only`20to`20be`20used`20when`20the`20players`20agree`20beforeh
Vand
Xon`20its`20use`20and`20limitations.`20`20The`20method`20ldb`20uses`20to`20impl
Vement
Xthis`20somewhat`20vague`20rule`20is`20to`20allow`20each`20player`20to`20specif
Vy
Xa`20maximum`20number`20of`20autodoubles`20they`20are`20willing`20to`20accept
V`20in
X.I`20.ldbrc,
Xand`20for`20the`20maximum`20number`20of`20autodoubles`20applied`20to`20any`20g
Vame
Xto`20be`20the`20lesser`20of`20the`20two`20players'`20specified`20limits.
XFor`20example,`20if`20you`20set
X.I`20"autodouble=4"
Xin`20your`20.ldbrc,`20no`20game`20you`20play`20will`20ever`20be`20autodoubled
Xmore`20than`204`20times,`20although`20the`20number`20of`20tied`20opening`20rol
Vls
Xis`20obviously`20not`20limited.`20`20However,`20if`20you`20were`20to`20start
V`20a`20game
Xwith`20someone`20who`20had`20set
X.I`20"autodouble=2",
Xthat`20game`20would`20be`20limited`20to`20at`20most`202`20autodoubles.`20`20If
V`20you`20don't
Xwant`20to`20play`20automatic`20doubles,`20set
Xautodouble=0,`20which`20is`20also`20the`20default.
X.IP`20superkey
XIf`20you`20live`20in`20fear`20of`20roving`20supervisors`20(or`20other
Xfun-impaired`20individuals)`20running`20across`20you`20playing`20an
Xinnocent`20game`20of`20backgammon,
Xyou`20may`20want`20to`20enable`20the`20superkey`20function.
XJust`20pick`20a`20key`20on`20the`20keyboard`20you`20never`20use`20in`20ldb,
V`20such`20as`20the
Xbackquote,`20and`20put`20a`20line`20in
X.I`20".ldbrc"
Xsetting`20superkey`20to`20the
X.I`20"decimal`20ASCII`20code"
Xof`20the`20key`20you`20want;`20for`20example,`20to`20use`20the`20backquote`20k
Vey,
Xuse`20"superkey=96".
XOnly`20single`5C-character`20keys`20are`20allowed,`20and
Xthe`20key`20you`20select`20will`20not`20be`20usable`20for`20normal`20purposes
Xwithin`20ldb.`20`20Make`20it`20one`20you`20can`20hit`20in`20a`20hurry.
X.IP`20supercmd
XIf`20you'd`20rather`20have`20a`20program`20of`20your`20choice`20come`20up
Xinstead`20of`20the`20shell`20when`20the`20superkey`20is`20pressed,
Xput`20it`20on`20this`20line.`20`20It`20will`20be`20passed
Xunchanged`20to`20a`20shell`20via`20the`20system()`20function.
XVMS`20users`20should`20read`20the`20note`20in`20the`20section`20titled
X"VMS`20NOTES"`20on`20supercmd`20functionality.
X.IP`20checkpoint
XThis`20option`20keeps`20the`20gamefile`20up`20to`20date`20by`20writing`20it
V`20out
Xwhenever`20the`20dice`20are`20rolled`20or`20a`20message`20is`20sent.`20`20This
V
Xprevents`20game`20information`20from`20being`20lost`20if`20ldb`20crashes,
Xyour`20machine`20goes`20down,`20or`20what`20have`20you.`20`20This`20option`20i
Vs
Xenabled`20by`20default,`20and`20I`20highly`20recommend`20you`20leave`20it
Xthat`20way.`20`20If`20you`20just`20can't`20stand`20the`20thought`20of`20a`20fe
Vw`20extra
Xwrites`20to`20disk,`20you`20can`20disable`20it`20with`20"checkpoint=no".
XOn`20your`20own`20head`20be`20it.
X.IP`20timeout
XThis`20option`20sets`20the`20number`20of`20days`20ldb`20will`20wait`20for`20a
V`20reply
Xfrom`20your`20opponent.`20`20After`20this`20number`20of`20days`20passes,`20ldb
V
Xwill`20assume`20your`20last`20message`20was`20lost`20and`20automatically`20res
Vend`20it.
XThis`20prevents`20the`20situation`20where`20both`20players`20think`20they`20ar
Ve
Xwaiting`20on`20the`20other,`20and`20eventually`20both`20players`20forget`20the
Vy
Xeven`20have`20a`20game`20going.`20`20This`20option`20defaults`20to`207`20days;
V`20
Xyou`20can`20disable`20automatic`20resends`20by`20setting`20it`20to`200.
X.IP`20keepold
XThis`20option`20sets`20the`20number`20of`20days`20ldb`20will`20keep`20a`20game
V`20after
Xit`20is`20over.`20`20This`20can`20be`20handy`20in`20case`20you`20need`20to`20r
Vesend`20the`20last
Xmove`20of`20a`20game.`20`20This`20option`20defaults`20to`207`20days;`20if`20yo
Vu`20set
Xit`20to`200,`20finished`20games`20are`20deleted`20immediately.
X.IP`20debug
XThis`20option`20enables`20various`20debug`20messages.`20`20It`20is`20a`20bitma
Vp,
Xwith`20each`20set`20bit`20enabling`20debug`20messages`20from`20a`20different
V`20part
Xof`20ldb.`20`20Most`20people`20will`20want`20to`20leave`20it`20at`200,`20which
V`20is
Xthe`20default.`20`20If`20you`20want`20debug`20messages,`20look`20for`20the
Xdefinitions`20of`20DB_*`20in`20ldb.h.
X.PP
X.SH`20"PEOPLE`20FILE"
XLdb`20maintains`20a`20list`20of`20all`20of`20the`20people`20you
Xhave`20ever`20played.`20`20This`20file`20is`20used`20for`20several`20purposes:
V
X.IP`20"1"
XIt`20stores`20the`20number`20of`20games,`20points,`20gammons,`20backgammons,
Xand`20matches`20you`20have`20won`20and`20lost`20to`20that`20person.
X.IP`20"2"
XIt`20stores`20the`20address`20for`20that`20person,`20and`20the
Xaddress`20that`20person`20should`20use`20to`20get`20to`20you.
XIt`20also`20allows`20you`20to`20assign`20an`20alias`20to`20that`20person,
Xand`20to`20use`20that`20alias`20when`20starting`20a`20game`20instead
Xof`20the`20full`20e`5C-mail`20address.
X.IP`20"3"
XIt`20stores`20information`20that`20allows`20ldb`20to`20reject
Xstart`20messages`20from`20defunct`20games.
X.PP
XNormally,`20you`20should`20never`20have`20to`20edit`20the
Xpeople`20file,`20but`20it`20is`20described`20here`20in`20case
Xyou`20need`20to`20for`20some`20reason.`20`20It`20is`20in`20the`20same
Xoverall`20format`20as`20.ldbrc`20(name/value`20pairs).
X.IP`20"addr"
XThis`20is`20the`20address`20of`20the`20opponent.`20`20This`20is`20what
Xuniquely`20defines`20the`20record,`20in`20case`20you`20are`20playing
Xtwo`20people`20with`20the`20same`20name.
X.IP`20"name"
XThis`20is`20the`20name`20of`20the`20opponent.
X.IP`20"alias"
XThis`20is`20a`20"nickname"`20you`20can`20assign`20to
Xan`20opponent.`20`20When`20a`20new`20opponent`20is`20found,
Xthe`20alias`20is`20initialized`20to`20the`20first`20word`20of
Xthe`20opponent's`20name,`20with`20all`20upper`20case`20letters
Xchanged`20to`20lower.`20`20You`20can`20change`20the`20alias`20to
Xany`20desired`20string`20with`20a`20text`20editor`20(just`20make`20sure
Xldb`20isn't`20running`20at`20the`20time,`20or`20your`20changes`20will
Xbe`20lost).
X.IP`20"myaddr"
XThis`20is`20the`20address`20that`20this`20opponent`20should`20use`20to
Xmail`20to`20you.`20`20This`20saves`20you`20from`20having`20to`20specify
Xthe`20-myaddr`20argument`20when`20starting`20a`20game,`20and`20is
Xespecially`20important`20with`20permanent`20games,`20since
Xthese`20games`20are`20started`20automatically`20without`20giving
Xyou`20a`20chance`20to`20change`20your`20address.`20`20If`20you`20only
Xhave`20one`20e`5C-mail`20path,`20you`20can`20ignore`20this.
XThis`20field`20is`20initialized`20to`20the`20value`20of`20the
X.I`20`5C-myaddr
Xoption`20at`20the`20time`20the`20first`20game`20with
Xthis`20opponent`20is`20started,`20or`20to
Xthe`20value`20of`20myaddr`20from`20.ldbrc`20if`20no
X.I`20`5C-myaddr
Xoption`20was`20used.
X.IP`20"equiv"
XThe`20presence`20of`20this`20field`20flags`20this`20as`20an`20"equiv"
Xrecord.`20`20Equiv`20records`20allow`20one`20opponent`20to`20have`20multiple
Xe`5C-mail`20addresses,`20but`20to`20cause`20all`20of`20them`20to`20refer`20to
Xone`20people`20record.`20`20Equiv`20records`20have`20no`20valid`20fields
Xexcept
X.I`20addr
Xand
X.I`20equiv,
Xand`20must`20be`20preceded`20by`20the`20record`20they`20refer`20to`20in`20the
V`20people`20file.
X.IP`20"fence"
XThe`20fence`20is`20defined`20as`20the`20start`20time`20of`20the`20most
Xrecently`20started`20game`20that`20has`20finished.`20`20If`20that`20makes
Xno`20sense,`20don't`20worry,`20you`20should`20never`20have`20to`20mess
Xwith`20it.`20`20It`20is`20used`20to`20discard`20old`20start`20messages`20that
Xyou`20forgot`20to`20clean`20out`20of`20your`20mail.
X.IP`20"score"
XThis`20is`20an`20array`20of`2010`20numbers`20that`20represent,`20in`20order:
X.IP`20""
X.nf
X`20`20`20`20`20-`20Games`20won
X`20`20`20`20`20-`20Games`20lost
X`20`20`20`20`20-`20Points`20won
X`20`20`20`20`20-`20Points`20lost
X`20`20`20`20`20-`20Gammons`20won
X`20`20`20`20`20-`20Gammons`20lost
X`20`20`20`20`20-`20Backgammons`20won
X`20`20`20`20`20-`20Backgammons`20lost
X`20`20`20`20`20-`20Matches`20won
X`20`20`20`20`20-`20Matches`20lost
X.fi
X.IP`20""
XThis`20information`20is`20stored`20purely`20for`20whatever`20purposes`20you
Xcan`20think`20of.
X.IP`20"end"
XThis`20line`20is`20required`20to`20separate`20people`20records.`20`20If`20you
Xhand`20enter`20a`20record,`20you`20must`20be`20sure`20to`20put`20an`20end`20ma
Vrker
Xor`20your`20record`20will`20merge`20with`20the`20next`20one,`20which`20is
Xnot`20what`20you`20want.
X.PP
X.SH`20"STARTING`20A`20GAME"
XTo`20start`20a`20game,`20you`20must`20use`20the
X.I`20`5C-start
Xcommand`20line`20argument,`20along`20with`20the`20e`5C-mail`20address`20of
Xthe`20person`20you`20wish`20to`20play`20with.
XFor`20example,
X.nf
X`20`20`20`20`20ldb`20`5C-start`20mybuddy@back.gammon.com
X.fi
XIf`20you`20want`20to`20play`20'w',`20and`20make`20your`20opponent`20play
X'b',`20use`20the`20command
X.nf
X`20`20`20`20`20ldb`20`5C-color`20wb`20`5C-start`20black@blah.blah.blah
X.fi
XSee`20the
XOPTIONS`20section`20for`20more`20details`20on`20the`20available
Xcommand`20line`20arguments.
X.I`20Ldb
Xwill`20not`20allow`20you`20to`20play`20with`20yourself,`20but
Xthat's`20ok`20because`20you'd`20probably`20lose.
X.PP
XWhen`20you`20start`20a`20game,`20ldb`20sends`20your`20e`5C-mail`20address
Xto`20your`20opponent,`20along`20with
Xyour`20opening`20roll.`20`20When`20your`20opponent`20receives
Xyour`20message,`20his`20ldb`20will`20roll`20his`20opening`20roll,`20and
Xdecide`20who`20won.`20`20If`20you`20won,`20his`20ldb`20will`20send`20your`20ld
Vb
Xa`20message`20to`20that`20effect,`20and`20the`20board`20will`20come`20up
Xon`20your`20screen`20with`20that`20roll`20in`20your`20move`20block.`20`20If
V`20he
Xwon,`20he`20will`20use`20the`20opening`20roll`20and`20his`20ldb`20will`20send
Xyour`20ldb
Xa`20message`20telling`20you`20how`20he`20moved.`20`20Either`20way,`20the`20gam
Ve`20is`20off
Xand`20running.
X.PP
XIf,`20by`20unfortunate`20chance,`20the`20opening`20roll`20is`20a`20tie,
Xyour`20opponent's`20ldb`20will`20send
Xyour`20ldb`20a`20message`20to`20that`20effect.
XThis`20will`20cause`20a`20new`20opening`20roll`20sequence`20as
Xdescribed`20above.
XA`20message`20will`20be`20printed`20telling`20you
Xwhat's`20going`20on;
Xjust`20keep`20feeding`20the`20incoming`20messages`20to`20ldb,`20and
Xit`20will`20take`20care`20of`20everything.
X.PP
X.SH`20"PLAYING`20A`20GAME"
XWhen`20it`20is`20your`20turn,`20the`20game`20will`20be`20displayed`20on`20your
V`20screen,
Xand`20you`20will`20be
Xfaced`20with`20three`20options:`20Roll,`20Double,`20or`20Concede.
XUnless`20you`20are`20very`20cocky,`20I`20would`20not`20suggest`20doubling
Xat`20this`20point.`20`20You`20could`20always`20concede,`20but`20I`20really
Xthink`20that`20would`20be`20selling`20yourself`20short.
XSo`20you`20should`20choose`20"Roll".
XJust`20press`20"r",`20and`20watch`20your`20roll`20appear`20on
Xyour`20move`20block`20(along`20the`20right`20side`20of`20the`20screen,`20under
V`20the
Xword`20"You").`20`20You`20should`20see`20two`20numbers`20appear`20(four`20if
V`20you
Xrolled`20doubles),`20and`20the`20word`20UNUSED`20beside`20them.
XDecide`20which`20of`20the`20rolls`20you`20want`20to`20use`20first,`20and`20pre
Vss
Xthe`20number`20of`20that`20roll.`20`20For`20example,`20say`20you`20rolled
X1`206,`20and`20you`20want`20to`20move`20the`20obvious`208`5C-7,`2013`5C-7`20to
V
Xmake`20your`20bar`20point.
XJust`20hit`20"6".`20`20Notice`20the`20cursor`20jump`20up`20to`20your`20move
V`20block,`20beside
Xthe`20"6"`20roll?`20`20It`20is`20waiting`20for`20you`20to`20enter`20the`20poin
Vt`20you`20want
Xto`20move`20from.`20`20Press`20"1"`20"3"`20(don't`20hit`20return).`20`20You
V`20should`20see
Xa`20piece`20move`20from`2013`20to`207,`20and`20this`20fact`20will`20be`20refle
Vcted`20in
Xyour`20move`20block`20as`20well.`20`20Now,`20press`20"1".`20`20Again`20the`20c
Vursor
Xjumps`20to`20the`20move`20block,`20and`20you`20type`20"8".
XThe`20second`20entry`20in`20the`20move`20block
Xreflects`20this`20move,`20as`20does`20the`20board.`20`20Happy?`20`20If`20not,
V`20press
X"r";`20this`20will`20reset`20your`20rolls`20to`20UNUSED`20and`20put
Xthe`20board`20back`20to`20how`20it`20was`20before`20you`20moved,
Xand`20then`20you`20can`20enter`20some`20different`20moves.`20`20Otherwise,`20h
Vit`20"s"
X(not`20"q"!)
Xto`20send`20the`20move.`20`20The`20cursor`20will`20jump`20down`20to`20the`20me
Vssage`20area,
Xwhere`20you`20get`20a`20chance`20to`20enclose`20a`20message`20to`20your`20oppo
Vnent,
Xperhaps`20to`20gloat`20over`20the`20great`20move`20you`20just`20made.
XYou`20only`20get`202`20lines`20of`2056`20characters,`20so`20keep`20it`20short.
V`20`20When
Xyou`20are`20done,`20press`20<return>.`20`20Your`20move`20is`20on`20its`20way!
X.PP
XThere`20are`20three`20shortcuts`20you`20can`20use
Xafter`20you`20have`20entered`20your`20first`20move:
X.IP`201.
XYou`20can`20press`20<return>,`20which`20will`20"repeat"`20your`20last`20move.
XThat`20is,`20your`20next`20remaining`20roll`20will`20move`20from`20the`20same
Xpoint`20as`20your`20last`20one`20moved`20from.`20`20This`20is`20handy`20when
Xusing`20doubles`20to`20move`20more`20than`20one`20piece`20from`20the`20same
V`20point.
X.IP`202.
XYou`20can`20press`20<space>,`20which`20will`20"continue"`20your`20last`20move.
V
XThat`20is,`20your`20next`20remaining`20roll`20will`20move`20from`20the
Xpoint`20your`20last`20move`20ended`20on.
X.IP`203.
XYou`20can`20press`20"p",`20which`20will`20attempt`20to`20make`20the`20point
V`20your
Xlast`20move`20ended`20on.`20`20In`20our`201`206`20example`20above,`20you`20cou
Vld`20have
Xjust`20hit`20"p"`20after`20you`20moved`2013`5C-7,`20and`20ldb`20would`20have
V`20figured
Xout`20that`20to`20make`20the`207`20point`20with`20the`20remaining`20roll`20of
V`201,
Xit`20would`20have`20to`20move`20a`20piece`20from`20the`208`20point.
X.PP
XIn`20addition,`20there`20is`20one`20more`20shortcut`20that`20may`20be`20used
Xwith`20any`20roll.`20`20If`20you`20want`20to`20use`20a`20roll`20to`20bear`20of
Vf
Xa`20piece,`20you`20can`20just`20hit`20"o".`20`20Ldb`20will`20locate`20the
Xpoint`20(if`20any)`20from`20which`20pieces`20may`20be`20legally`20borne`20off
Xby`20the`20next`20unused`20roll,`20and`20make`20that`20move`20automatically.
XYou`20can`20also`20select`20a`20roll,`20then`20hit`20"o".
X.PP
XIf`20you`20use`20your`20moves,`20hit`20"Send",`20and`20start`20to`20enter`20yo
Vur
Xmessage,`20then`20realize`20you`20made`20a`20mistake,`20you`20can`20press
XESC`20to`20get`20out`20of`20send`20and`20back`20into`20the`20game,`20where
Xyou`20can`20use`20"Reset"`20and`20re`5C-enter`20your`20moves.
X.PP
X.SH`20DOUBLING
XIf`20you`20decide`20to`20double,`20just`20choose`20"Double"`20instead`20of
X"Roll".`20`20You`20will`20get`20to`20enclose`20a`20message,`20just`20like`20wh
Ven
Xyou`20send`20a`20move,`20then`20your`20message`20gets`20sent.`20`20Once`20you
V`20have
Xdoubled,`20you`20cannot`20double`20again`20until`20your`20opponent`20does`20so
V,
Xso`20ldb`20automatically`20selects`20"Roll"`20and`20sends`20you`20to`20the
Xnext`20menu.`20`20If`20you`20don't`20like`20this,`20you`20can`20disable`20it
V`20by
Xsetting
X.I`20autoroll=no
Xin`20.ldbrc.
X.PP
XIf`20your`20opponent`20doubles,`20you`20will`20see`20a`20message`20just`20unde
Vr
Xthe`20board`20to`20that`20effect,`20and`20a`20menu`20will`20come`20up
Xallowing`20you`20to`20Accept`20or`20Decline`20the`20double.
XDeclining`20the`20double`20means`20you`20lose`20the`20game`20for`20the
Xcurrent`20game`20value.`20`20Accepting`20means`20that`20the`20game
Xcontinues,`20but`20its`20value`20is`20doubled.`20`20The`20current
Xgame`20value`20is`20shown`20to`20the`20left`20of`20the`20board.`20`20After
Xyou`20accept,`20you`20should`20see`20this`20display`20move`20next`20to`20your
Xhome`20board,`20indicating`20that`20you`20own`20the`20doubling`20cube.
X.PP
XIf`20the`20Crawford`20rule`20game`20is`20being`20played,
Xdoubling`20is`20illegal,`20and`20will`20result`20in`20an`20error`20message.
X.PP
X.SH`20BOARDS
X.I`20Ldb
Xmaintains`20three`20board`20images`20at`20all`20times.`20`20These`20are:
X.IP`201
XThe`20board`20before`20your`20opponent's`20last`20move.
XIt`20is`20for`20display`20purposes`20only,`20so`20you`20can`20see`20your
Xopponent's`20move`20"before`20and`20after".`20`20The`20pieces`20your`20opponen
Vt
Xis`20going`20to`20move`20are`20highlighted.
X.IP`202
XThe`20board`20after`20your`20opponent's`20last`20move.
XIt`20shows`20the`20condition`20of`20the
Xboard`20after`20your`20opponent's`20last`20move,`20with`20the`20pieces`20he
Xmoved`20highlighted.
X.IP`203
XThe`20current`20board.`20`20This`20is`20the`20"real"`20board`20that`20shows
V`20the
Xcurrent`20state`20of`20the`20game.
XNothing`20is`20highlighted.
X.PP
XBy`20default,`20ldb`20displays`20the`20Current`20board`20at`20all`20times.`20
V`20If
Xyou`20want`20to`20see`20the`20other`20boards,`20use`20the`20Board`20command
X(provided`20it`20is`20in`20the`20current`20menu).`20`20This`20will`20cycle`20t
Vhrough
Xthe`20three`20boards`20in`20the`20order`20they`20are`20listed`20above.`20`20Th
Ve`20second
Xline`20of`20the`20screen`20tells`20you`20which`20board`20is`20displayed`20(nea
Vr`20the`20left).`20`20When
Xyou`20roll,`20ldb`20automatically`20switches`20to`20the`20current`20board`20if
V
Xit`20is`20not`20already`20up.`20`20You`20can`20set`20which`20of`20these`20thre
Ve`20boards
Xis`20initially`20displayed`20via`20the
X.I`20initialboard
Xsetting`20in`20.ldbrc.
X.PP
X.SH`20"ENTERING`20COMMENTS"
XWhenever`20you`20send`20a`20move`20to`20your`20opponent,`20you`20are
Xgiven`20the`20opportunity`20to`20enclose`20a`20two`20line`20comment.
XWhile`20entering`20your`20comment,`20certain`20keys`20have`20special`20meaning
V.
XThese`20are:
X.IP`20"BS/DEL"
XThe`20backspace`20and`20delete`20(or`20rubout)`20keys`20both`20erase`20the
Xlast`20character`20typed.`20`20You`20can`20backspace`20from`20one`20line`20to
Xthe`20previous`20one.
X.IP`20"`5EW/`5EB"
XThe`20`5EW`20and`20`5EB`20(control-W`20and`20control-B)`20keys`20both`20erase
V`20the
Xlast`20word`20typed.`20`20Words`20are`20delimited`20by`20spaces.
X.IP`20"`5EX/`5EU"
XThe`20`5EX`20and`20`5EU`20(control-X`20and`20control-U)`20keys`20erase`20the
Xcurrent`20line`20and`20move`20to`20the`20end`20of`20the`20previous`20line,
Xor`20to`20the`20beginning`20of`20the`20first`20line`20if`20used`20on`20the
Xfirst`20line.
X.IP`20"RETURN"
XIf`20you`20press`20return`20on`20an`20empty`20line,`20or`20on`20the`20last`20l
Vine,
Xthe`20comment`20is`20finished.`20`20Otherwise,`20the`20cursor`20moves`20to`20t
Vhe
Xnext`20line.
X.IP`20"ESC"
XThe`20escape`20key`20aborts`20the`20operation`20(e.g.`20Send),`20restores
Xthe`20previous`20comment,`20and`20returns`20to`20the`20previous`20menu.
XThis`20allows`20you`20to`20change`20your`20mind`20and`20back`20out`20of
Xan`20operation.
X.PP
XAll`20other`20keys`20are`20entered`20into`20the`20comment.`20`20When`20you`20r
Veach
Xthe`20end`20of`20a`20line,`20ldb`20word-wraps`20to`20the`20next`20line,`20or
V`20beeps
Xif`20you`20are`20at`20the`20end`20of`20the`20last`20line.`20`20Note`20that`20t
Vhe
Xsuperkey`20is`20still`20active`20while`20entering`20comments,`20and
Xcannot`20be`20entered`20into`20a`20comment.
X.PP
X.SH`20"CONTROLLING`20A`20GAME"
XThe
X.I`20`5C-control
Xoption`20permits`20you`20to`20control`20your`20games`20in
Xcertain`20ways.`20`20Each`20of`20your`20current`20games`20are
Xdisplayed,`20one`20at`20a`20time,`20just`20as`20they`20are`20when`20you
Xare`20playing,`20allowing`20you`20to`20perform`20any`20of`20the
Xfunctions`20on`20the`20control`20menu.
XThe`20control`20menu`20has`20the`20following`20commands:
X.IP`20"Invert"
XThis`20allows`20you`20to`20invert`20the`20board`20for`20this`20game.`20`20The
Xboard`20will`20invert`20immediately`20on`20your`20screen,`20so`20you`20can
Xsee`20if`20you`20like`20it.`20`20Pressing
X.I`20Invert
Xagain`20will`20put`20it`20back`20to`20normal.`20`20Inverting`20the`20board`20d
Voes
Xnot`20affect`20the`20point`20numbering`20or`20the`20color`20you`20play,
Xit`20merely`20draws`20the`20board`20with`20the`20low-numbered`20points`20at
Xthe`20top`20of`20the`20screen`20rather`20than`20the`20bottom.`20`20You`20may
V`20find
Xit`20easier`20to`20make`20all`20of`20your`20games`20play`20a`20certain`20direc
Vtion.
X.IP`20"Resend"
XFrom`20time`20to`20time,`20messages`20may`20be`20lost`20due`20to`20faulty`20ma
Vilers
Xor`20human`20error.`20`20If`20your`20last`20message`20gets`20lost,`20you`20can
V
Xregenerate`20it`20with`20the
X.I`20Resend
Xcommand.`20`20There`20is`20no`20harm`20in`20regenerating`20messages,`20as
Xldb`20will`20ignore`20duplicate`20messages.`20`20If`20you`20and`20your`20oppon
Vent
Xhave`20forgotten`20whose`20move`20it`20is,`20the`20easiest`20way`20to`20get
V`20going
Xagain`20is`20for`20both`20of`20you`20to`20resend`20your`20last`20message.`20
V`20The`20one
Xthat`20got`20lost`20will`20be`20accepted,`20and`20the`20game`20will`20be`20off
V
Xand`20running`20again.`20`20So`20that`20you`20can`20resend`20the`20last`20move
V
Xof`20a`20game,`20completed`20games`20are`20kept`20in`20your`20.ldbdata`20for
X1`20week,`20after`20which`20they`20are`20deleted.`20`20They`20may`20be`20delet
Ved
Xsooner`20with`20the`20Delete`20Game`20command.`20`20Note`20also`20that
Xgames`20that`20have`20been`20waiting`20for`20your`20opponent`20for`20more`20th
Van
X1`20week`20have`20an`20automatic`20resend`20performed`20whenever`20you`20run
V`20ldb.
XResend`20is`20disabled`20if`20it`20is`20your`20turn.
X.IP`20"Get`20Resend"
XThis`20allows`20you`20to`20send`20a`20message`20to`20your`20opponent's
Xldb`20requesting`20a`20resend.`20`20This`20saves`20your`20opponent`20the
Xtrouble`20of`20getting`20into
X.I`20`5C-control,
Xfinding`20which`20game`20you're`20talking`20about,`20and`20resending.
XInstead,`20he`20can`20just`20feed`20your`20resend`20request`20message`20into
Xldb`20like`20it`20was`20a`20regular`20move.`20`20Version`201.0`20of`20ldb
Xnot`20only`20does`20not`20support`20this`20feature,`20but`20will`20crash
Xif`20a`20resend`20request`20packet`20is`20sent`20to`20it,`20so
X.I`20`5C-control
Xwill`20check`20to`20make`20sure`20your`20opponent`20is`20running
Xthe`20proper`20version
Xbefore`20sending`20the`20message.
X"Get`20Resend"`20is`20disabled`20for`20games`20that`20are`20over.
X.IP`20"Screen`20Dump"
XThis`20command`20makes`20an`20exact`20copy`20of`20the`20screen`20in`20the
Xfile`20"ldb_screen.dmp".`20`20This`20could`20be`20useful`20if`20you
Xwant`20to`20mail`20the`20board`20to`20someone`20or`20print`20it`20out.
X.IP`20"Delete`20Game"
XThis`20command`20marks`20a`20game`20for`20deletion.`20`20The`20game`20is`20not
V`20deleted
Xuntil`20you`20quit,`20and`20you`20can`20undelete`20it`20by`20pressing`20D`20ag
Vain.
XNormally,`20you`20should`20not`20delete`20a`20game`20in`20this`20manner,`20
Xyou`20should`20play`20until`20someone`20wins`20or`20concedes.`20`20The
X.I`20"Delete`20Game"
Xcommand`20can`20be`20used`20to`20get`20rid`20of`20games`20where`20your`20oppon
Vent
Xdoesn't`20answer`20his`20mail,`20or`20doesn't`20want`20to`20play,`20etc.
X.IP`20"Next`20Game"
XThe`20next`20game`20is`20displayed.`20`20If`20there`20is`20no`20next`20game,
Xthis`20choice`20is`20equivalent`20to
X.I`20Quit.
X.IP`20"Quit"
XThis`20allows`20you`20to`20exit`20from
X.I`20"`5C-control".
XIf`20you`20made`20any`20changes`20to`20your`20games,`20you`20will`20be`20given
V`20the`20opportunity
Xto`20save`20these`20changes,`20then`20ldb`20will`20exit.
X.SH`20"VMS`20NOTES"
X.PP
XVMS`20users`20have`20a`20few`20unique`20considerations:
X.PP
XOn`20VMS,`20the`20default`20file`20names`20are`20changed`20from`20.ldb*`20to
V`20ldb.*.`20`20This
Xgroups`20all`20ldb`20files`20together.
X.PP
XVMS`20mail`20doesn't`20append
Xmessages`20to`20an`20existing`20file,`20it`20creates`20new`20versions.
XTo`20accommodate`20this,`20vms-compiled`20executables`20will`20search`20all
V`20versions
Xof`20a`20file`20by`20default.`20`20This`20applies`20to`20files`20specified`20o
Vn`20the`20command
Xline`20as`20well`20as`20the`20file`20specified`20in`20your`20ldb.rc.`20`20You
V`20can`20disable
Xthis`20in`20either`20case`20by`20specifying`20a`20version`20number,`20or`20by
V`20specifying
Xversion`20number`200`20to`20get`20the`20most`20current`20version.`20`20The`20d
Vefault`20setting
Xin`20ldb.rc`20is`20to`20scan`20sys$login:ldb.rcv;*.`20`20You`20might`20want
V`20to`20change
Xthis`20to`20ldb.txt;*,`20since`20that`20is`20the`20default`20extension`20added
V`20by
Xmail`20when`20you`20extract`20a`20file.`20`20If`20you`20use`20multiple`20versi
Vons,`20you
Xshould`20be`20careful`20not`20to`20PURGE`20until`20after`20you`20have`20run
V`20ldb.
X.PP
XIf`20you`20have`20the`20Eunice`20package,`20ldb`20will`20compile`20and`20run
V`20under`20it`20fine,
Xbut`20any`20files`20created`20by`20the`20Eunice`5C-compiled`20version
X(most`20notably`20the`20games`20file)
Xwill`20be`20incompatible`20with`20the`20VAX`20C`5C-compiled`20version.`20`20Us
Ve`20the
Xunixtovms`20command`20to`20convert.
X.PP
XLdb`20is`20available`20in`20vms_share`20format`20with`20the`20manual`20preform
Vatted.
XIf`20you`20have`20MMS,`20you`20can`20use`20the`20makefile.vms`20provided`20by
V`20entering:
X.nf
X`20`20`20`20`20$`20rename`20makefile.vms`20makefile.
X`20`20`20`20`20$`20make
X.fi
XIf`20you`20don't`20have`20a`20make`20available,`20you`20can`20compile`20with:
X.nf
X`20`20`20`20`20$`20@makeldb
X.fi
XAfter`20ldb`20is`20compiled,`20you'll`20probably`20want
Xto`20define`20a`20symbol`20such`20as:
X.nf
X`20`20`20`20`20$`20ldb`20:==`20$dua0:`5Bme.ldb`5Dldb
X.fi
Xso`20you`20can`20run`20it.
X.PP
XThe`20VMS`20implementation`20spawns`20a`20subprocess`20with`20no`20command`20w
Vhen`20the
Xsuperkey`20is`20pressed.`20`20You`20can`20enter`20LOGOUT`20or`20EOJ`20to`20ret
Vurn`20to`20the
Xgame.`20`20If`20you`20define`20a`20command`20to`20run`20when`20the`20superkey
V`20is`20pressed,
Xthe`20command`20will`20be`20run,`20but`20you`20will`20still`20need`20to`20logo
Vut`20of
Xthe`20subprocess`20to`20return`20to`20ldb.
X.PP
X.SH`20BUGS
X.PP
XA`20game`20file`20created`20by`20ldb`20under`20Eunice`20must`20be`20run`20thro
Vugh
X"unixtovms"`20before`20the`20VAX`5C-C`20ldb`20can`20read`20it.
X.PP
XThe`20superkey`20function`20only`20works`20when`20ldb`20is`20waiting`20for`20a
V`20key.
XIf`20ldb`20is`20doing`20something`20time-consuming,`20such`20as`20calculating
Xlegal`20moves,`20the`20superkey`20will`20not`20work`20until`20the`20calculatio
Vn
Xis`20complete.
X.PP
XThere`20should`20be`20a`20way`20to`20play`20interactively`20(using`20socket
V`20connections,
Xfor`20example),`20rather`20than`20via`20e`5C-mail.
X.PP
XUnder`20Eunice,`20there`20is`20a`20bug`20when`20delmail`20is`20enabled,
Xreceived`20mail`20is`20in`20a`20file`20with`20multiple`20versions,
Xand`20these`20versions`20are`20entered`20on`20the`20command`20line
X(as`20opposed`20to`20being`20specified`20by`20a`20pattern`20in`20.ldbrc).
XEunice`20handles`20multiple`20versions`20by`20appending`20a`20dot`20and`20the
V`20version
Xnumber`20to`20all`20versions`20of`20the`20file`20but`20the`20newest`20version,
V
Xto`20which`20it`20appends`20nothing.`20`20When`20the`20most`20recent`20version
V`20is`20deleted,
Xthe`20next`20older
Xversion`20becomes`20the`20most`20recent,`20and`20has`20no`20version`20suffix
Xattached.`20`20This`20file`20will`20be`20skipped,`20since`20its`20name`20chang
Ved
Xbetween`20the`20time`20the`20file`20list`20was`20created`20and`20the`20file
V`20is`20opened.
XAll`20other`20files`20will`20be`20scanned`20properly.`20`20The`20work-around
V`20for`20this
Xis`20to`20not`20use`20a`20pattern`20like`20'ldb`20ldb.txt*'`20on`20the`20comma
Vnd`20line
Xto`20specify`20all`20versions`20of`20the`20file,`20but`20rather`20use`20'ldb
V`20ldb.txt.*`20ldb.txt'
Xso`20that`20the`20most`20recent`20version`20is`20scanned`20(and`20thus`20delet
Ved)`20last.
XAlternatively,`20the`20pattern`20can`20be`20quoted`20so`20that`20ldb`20interpr
Vets
Xit`20instead`20of`20the`20shell.
X.PP
XThe
X.I`20`5C-myaddr
Xcommand`20line`20option`20should`20override`20the
Xmyaddr`20line`20in`20the`20people`20file.
X.PP
XVersion`201.0`20of`20ldb`20only`20allowed`20the`20colors`20red,
Xwhite,`20and`20black,`20represented`20by`20r,`20w,`20and`20b,
Xrespectively.`20`20Although`20ldb`201.0`20will`20allow`20games
Xto`20be`20started`20and`20played`20correctly`20with`20different
Xcolors,`20the`20move`20blocks`20will`20have`20the`20string`20"*BAD`20COLOR*"
Xdisplayed`20where`20the`20color`20should`20be,`20making`20it`20difficult
Xto`20figure`20out`20which`20color`20you`20are`20playing.`20`20Upgrading
Xto`20a`20newer`20ldb`20will`20fix`20this.`20`20Nevertheless,`20if`20you
Xare`20playing`20someone`20who`20is`20using`20ldb`201.0,`20you`20may`20want
Xto`20restrict`20your`20color`20choices`20to`20r,`20w,`20and`20b.
X.PP
XOccasionally,`20ldb`20will`20print`20a`20spurious`20message`20telling
Xyou`20that`20you`20only`20have`20one`20legal`20move.`20`20Usually`20when`20it
V`20prints
Xthis,`20it`20is`20right,`20but`20in`20the`20special`20case`20where`20you`20hav
Ve`20one
Xpiece`20left`20to`20bear`20off,`20one`20of`20your`20rolls`20is`20less`20than
Xyou`20need`20to`20bear`20it`20off,`20and`20the`20other`20roll`20is`20big`20eno
Vugh
Xto`20bear`20off`20by`20itself,`20ldb`20will`20want`20you`20to`20use`20the`20sm
Valler
Xdie`20first,`20then`20bear`20off`20with`20the`20bigger`20one.`20`20This`20is
V`20consistent
Xwith`20the`20rules`20that`20say`20you`20must`20use`20both`20dice`20if`20you
V`20can,
Xbut`20is`20not`20correct`20in`20this`20case.`20`20Note`20that`20you`20can`20ei
Vther
Xuse`20both`20dice`20like`20ldb`20wants,`20or`20ignore`20the`20message`20and
V`20bear
Xoff`20with`20the`20larger`20die.`20`20Your`20move`20will`20be`20accepted`20eit
Vher`20way.
$ call unpack LDB.MAN;1 372637774 ""
$!
$ create 'f'
X%!PS-Adobe-2.1
X%%Creator:`20groff`20version`201.01
X%%DocumentFonts:`20Times-Italic`20Times-Bold`20Times-Roman
X%%DocumentSuppliedFonts:
X%%DocumentNeededFonts:`20Times-Italic`20Times-Bold`20Times-Roman
X%%Pages:`2012
X%%EndComments
X/grops`20100`20dict`20def`20grops`20begin
X%!
X%`20If`20you`20add`20definitions`20here,`20be`20sure`20to`20check`20that`20MAX
V_PROLOGUE_DEFS
X%`20in`20ps.c`20is`20large`20enough.
X
X%`20The`20ASCII`20code`20of`20the`20space`20character.
X/SC`2032`20def
X
X/A`20/show`20load`20def
X/B`20`7B`200`20SC`203`20-1`20roll`20widthshow`20`7D`20bind`20def
X/C`20`7B`200`20exch`20ashow`20`7D`20bind`20def
X/D`20`7B`200`20exch`200`20SC`205`202`20roll`20awidthshow`20`7D`20bind`20def
X/E`20`7B`200`20rmoveto`20show`20`7D`20bind`20def
X/F`20`7B`200`20rmoveto`200`20SC`203`20-1`20roll`20widthshow`20`7D`20bind`20def
V
X/G`20`7B`200`20rmoveto`200`20exch`20ashow`20`7D`20bind`20def
X/H`20`7B`200`20rmoveto`200`20exch`200`20SC`205`202`20roll`20awidthshow`20`7D
V`20bind`20def
X/I`20`7B`200`20exch`20rmoveto`20show`20`7D`20bind`20def
X/J`20`7B`200`20exch`20rmoveto`200`20SC`203`20-1`20roll`20widthshow`20`7D`20bin
Vd`20def
X/K`20`7B`200`20exch`20rmoveto`200`20exch`20ashow`20`7D`20bind`20def
X/L`20`7B`200`20exch`20rmoveto`200`20exch`200`20SC`205`202`20roll`20awidthshow
V`20`7D`20bind`20def
X/M`20`7B`20rmoveto`20show`20`7D`20bind`20def
X/N`20`7B`20rmoveto`200`20SC`203`20-1`20roll`20widthshow`20`7D`20bind`20def
X/O`20`7B`20rmoveto`200`20exch`20ashow`20`7D`20bind`20def
X/P`20`7B`20rmoveto`200`20exch`200`20SC`205`202`20roll`20awidthshow`20`7D`20bin
Vd`20def
X/Q`20`7B`20moveto`20show`20`7D`20bind`20def`20
X/R`20`7B`20moveto`200`20SC`203`20-1`20roll`20widthshow`20`7D`20bind`20def
X/S`20`7B`20moveto`200`20exch`20ashow`20`7D`20bind`20def
X/T`20`7B`20moveto`200`20exch`200`20SC`205`202`20roll`20awidthshow`20`7D`20bind
V`20def
X
X%`20name`20size`20font`20SF`20-
X
X/SF`20`7B
X`09findfont`20exch
X`09`5B`20exch`20dup`200`20exch`200`20exch`20neg`200`200`20`5D`20makefont
X`09dup`20setfont
X`09`5B`20exch`20/setfont`20cvx`20`5D`20cvx`20bind`20def
X`7D`20bind`20def
X
X%`20name`20a`20c`20d`20font`20MF
X
X/MF`20`7B
X`09findfont
X`09`5B`205`202`20roll
X`090`203`201`20roll`20%`20b
X`09neg`200`200`20`5D`20makefont
X`09dup`20setfont
X`09`5B`20exch`20/setfont`20cvx`20`5D`20cvx`20bind`20def
X`7D`20bind`20def
X
X`09
X%`20BP`20-
X
X/BP`20`7B
X`09/level0`20save`20def
X`091`20setlinecap
X`091`20setlinejoin
X`0972`20RES`20div`20dup`20scale
X`09LS`20`7B
X`09`0990`20rotate
X`09`7D`20`7B
X`09`090`20PL`20translate
X`09`7D`20ifelse
X`091`20-1`20scale
X`7D`20bind`20def
X
X/EP`20`7B
X`09level0`20restore
X`09showpage
X`7D`20bind`20def
X
X
X%`20centerx`20centery`20radius`20startangle`20endangle`20DA`20-
X
X/DA`20`7B
X`09newpath`20arcn`20stroke
X`7D`20bind`20def
X
X%`20x`20y`20SN`20-`20x'`20y'
X%`20round`20a`20position`20to`20nearest`20(pixel`20+`20(.25,.25))
X
X/SN`20`7B
X`09transform`20
X`09.25`20sub`20exch`20.25`20sub`20exch
X`09round`20.25`20add`20exch`20round`20.25`20add`20exch
X`09itransform
X`7D`20bind`20def
X`09
X%`20endx`20endy`20startx`20starty`20DL`20-
X%`20we`20round`20the`20endpoints`20of`20the`20line,`20so`20that`20parallel`20h
Vorizontal
X%`20and`20vertical`20lines`20will`20appear`20even
X
X/DL`20`7B
X`09SN
X`09moveto
X`09SN
X`09lineto`20stroke
X`7D`20bind`20def
X
X%`20centerx`20centery`20radius`20DC`20-
X
X/DC`20`7B
X`09newpath`200`20360`20arc`20closepath
X`7D`20bind`20def
X
X
X/TM`20matrix`20def
X
X%`20`20width`20height`20centerx`20centery`20DE`20-
X
X/DE`20`7B
X`09TM`20currentmatrix`20pop
X`09translate`20scale`20newpath`200`200`20.5`200`20360`20arc`20closepath
X`09TM`20setmatrix
X`7D`20bind`20def
X
X%`20these`20are`20for`20splines
X
X/RC`20/rcurveto`20load`20def
X/RL`20/rlineto`20load`20def
X/ST`20/stroke`20load`20def
X/MT`20/moveto`20load`20def
X/CL`20/closepath`20load`20def
X
X%`20fill`20the`20last`20path
X
X%`20amount`20FL`20-
X
X/FL`20`7B
X`09currentgray`20exch`20setgray`20fill`20setgray
X`7D`20bind`20def
X
X%`20fill`20with`20the`20`60`60current`20color''
X
X/BL`20/fill`20load`20def
X
X/LW`20/setlinewidth`20load`20def
X%`20new_font_name`20encoding_vector`20old_font_name`20RE`20-
X
X/RE`20`7B
X`09findfont
X`09dup`20maxlength`20dict`20begin
X`09`7B
X`09`091`20index`20/FID`20ne`20`7B`20def`20`7D`20`7B`20pop`20pop`20`7D`20ifelse
V
X`09`7D`20forall
X`09/Encoding`20exch`20def
X`09dup`20/FontName`20exch`20def
X`09currentdict`20end`20definefont`20pop
X`7D`20bind`20def
X
X%`20hpos`20vpos`20EBEGIN`20-
X
X/EBEGIN`20`7B
X`09moveto
X`09DEFS`20begin
X`7D`20bind`20def
X
X/EEND`20/end`20load`20def
X
X%`20llx`20lly`20newwid`20wid`20newht`20ht`20newllx`20newlly`20-
X
X/PICTURE`20`7B
X`09translate
X`09div`203`201`20roll`20div`20exch`20scale
X`09neg`20exch`20neg`20exch`20translate
X`09%`20set`20the`20graphics`20state`20to`20default`20values
X`090`20setgray
X`090`20setlinecap
X`091`20setlinewidth
X`090`20setlinejoin
X`0910`20setmiterlimit
X`09`5B`5D`200`20setdash
X`09newpath
X`7D`20bind`20def
X/DEFS`201`20dict`20def`20DEFS`20begin/u`7B.001`20mul`7Dbind`20def`20end`20end
X%%EndProlog
X%%IncludeFont:`20Times-Italic
X%%IncludeFont:`20Times-Bold
X%%IncludeFont:`20Times-Roman
X%%BeginSetup
Xgrops`20begin/#copies`201`20def/RES`2072`20def/PL`20792`20def/LS`20false`20def
V/ENC0`5B/asciicircum
X/asciitilde/Scaron/Zcaron/scaron/zcaron/Ydieresis/trademark/.notdef/.notdef
X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
X/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
X/.notdef/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar
X/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
X/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolo
Vn
X/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/
VX
X/Y/Z/bracketleft/backslash/bracketright/circumflex/underscore/quoteleft/a/b/c/
Vd
X/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/tilde
X/.notdef/quotesinglbase/guillemotleft/guillemotright/bullet/florin/fraction
X/perthousand/dagger/daggerdbl/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj
V
X/grave/hungarumlaut/dotaccent/breve/caron/ring/ogonek/quotedblleft
X/quotedblright/oe/lslash/quotedblbase/OE/Lslash/.notdef/exclamdown/cent
X/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine
X/guilsinglleft/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
V
X/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
X/ordmasculine/guilsinglright/onequarter/onehalf/threequarters/questiondown
X/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla/Egrave/Eacute
X/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve
X/Oacute/Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex
V
X/Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
X/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave/iacute
X/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis
X/divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis`5Dde
Vf
X/Times-Italic@0`20ENC0/Times-Italic`20RE/Times-Bold@0`20ENC0/Times-Bold`20RE
X/Times-Roman@0`20ENC0/Times-Roman`20RE
X%%EndSetup
X%%Page:`201`201
XBP/F0`2010/Times-Roman@0`20SF`20402.18(LDB`5C(1`5C)`20LDB`5C(1`5C))72`2048`20R
V/F1`209/Times-Bold@0`20SF
X(NAME)72`2084`20Q`20F0(ldb`20`5C255`20Play`20backgammon`20by`20e`5C255mail)108
V`2096`20Q`20F1(SYNOPSIS)72
X112.8`20Q`20F0(ldb`20`5Boptions`5D`20`5Binput`20`5C214les...`5D)108`20124.8
V`20Q`20F1(DESCRIPTION)72`20141.6
XQ/F2`2010/Times-Italic@0`20SF(Ldb)108`20153.6`20Q`20F0`204.007
X(allows`20two`20people`20to`20play`20backgammon`20over`20a`20network`20using
V`20electronic`20mail.)
X6.507`20F`204.006(It`20runs`20on)9.006`20F`201.175
X(character`5C255oriented`20terminals,`20or`20emulators`20thereof,`20using`20th
Ve)108`20165.6`20R
XF2(curses)3.675`20E`20F0`201.175(screen`20package.)3.675`20F`201.175(It`20will
V`20run`20on`20most)
X6.175`20F`201.339(UNIX`20dialects,`20as`20well`20as`20V)108`20177.6`20R`201.33
V9
X(AX`5C255C`20under`20VMS`205.0`20and`20above.)-1.29`20F`20F2(Ldb)6.339`20E`20F
V0`201.339
X(will`20display`20a`20picture`20of`20the`20board,)3.839`20F`20.358
X(prompt`20the`20user`20to`20enter`20a`20move,`20check`20the`20move`20for`20leg
Vality)108`20189.6`20R`202.858
X(,a)-.65`20G`20.358(nd`20send`20the`20move`20to`20the`20opponent.)362.706`2018
V9.6`20R`20.358(When`20it)
X5.358`20F`20.023(arrives,`20it`20will`20be`20displayed`20on`20the`20opponent')
V108`20201.6`20R`202.522
X(ss)-.55`20G`20.022(creen,`20after`20which`20the`20opponent`20will`20be`20prom
Vpted`20for`20a`20move)
X296.78`20201.6`20R(to`20be`20sent`20back.)108`20213.6`20Q`20F1(FEA)72`20230.4
V`20Q(TURES)-.666`20E`20F0
X(Multiple`20Games)108`20242.4`20Q`20F2(Ldb)144`20254.4`20Q`20F0`20.068
X(can`20keep`20track`20of`20an`20arbitrary`20number`20of`20games`20simultaneous
Vly)2.568`20F`202.568
X(,a)-.65`20G`20.069(nd`20will`20display`20them`20one`20at`20a)424.038`20254.4
V`20R`20.71
X(time`20for`20you`20to`20play)144`20266.4`20R`205.71(.Y)-.65`20G`20.71(ou`20ca
Vn`20exit`20from)240.06
X266.4`20R`20F2(ldb)3.21`20E`20F0`20.709
X(at`20any`20time;`20when`20you`20run`20ldb`20again,`20it`20will`20pick`20up)3.
V21`20F
X(your`20games`20where`20you`20left`20of)144`20278.4`20Q(f.)-.18`20E(Move`20Che
Vcking)108`20295.2`20Q
X(Both`20your`20moves`20and`20your`20opponent')144`20307.2`20Q`202.5(sm)-.55
V`20G
X(oves`20are`20checked`20for`20legality)307.33`20307.2`20Q`205(.T)-.65`20G(his
V`20includes:)435.25
X307.2`20Q`2030.36<ad4c>108`20324`20S(anding`20on`20an`20occupied`20point.)150.
V11`20324`20Q`2030.36
X<ad42>108`20340.8`20S(earing`20of)150.67`20340.8`20Q`202.5(fb)-.18`20G
X(efore`20your`20inner`20table`20is`20full.)197.14`20340.8`20Q`2030.36<ad54>108
V`20357.6`20S
X(rying`20to`20move`20pieces`20that`20are`20on`20the`20board`20when`20you`20hav
Ve`20a`20piece`20on`20the`20bar)
X149.76`20357.6`20Q(.)-.55`20E`2030.36<ad54>108`20374.4`20S`20.817(rying`20to
V`20bear`20of)149.76
X374.4`20R`203.317(fap)-.18`20G`20.817
X(iece`20when`20there`20is`20a`20piece`20on`20a`20higher`20point,`20and`20the
V`20roll`20is`20not`20being`20used)
X233.365`20374.4`20R(exactly)144`20386.4`20Q(.)-.65`20E`2030.36<ad54>108`20403.
V2`20S
X(rying`20to`20leave`20a`20usable`20move`20unused.)149.76`20403.2`20Q`2030.36<a
Vd54>108`20420`20S(ryin`5C
Xg`20to`20leave`20a`20move`20unused`20when`20it`20is`20usable`20and`20has`20a
V`20higher`20roll`20than`20the`20move`5C
X`20that`20is`20used.)149.76`20420`20Q`2030.36<ad54>108`20436.8`20S
X(rying`20to`20double`20when`20you`20doubled`20last.)149.76`20436.8`20Q`2030.36
V<ad54>108`20453.6`20S
X(rying`20to`20double`20in`20a`20Crawford`20rule`20game.)149.76`20453.6`20Q(Mes
Vsage`20Reliability)
X108`20470.4`20Q`20F2(Ldb)144`20482.4`20Q`20F0
X(detects`20`5C(and`20rejects`5C)`20duplicate`20messages,`20and`20can`20regener
Vate`20lost`20messages.)
X2.5`20E(Remote`20Start)108`20499.2`20Q`20F2(Ldb)144`20511.2`20Q`20F0`20.624
X(can`20start`20a`20game`20between`20two`20players`20on`20remote`20hosts.)3.124
V`20F`20.624
X(This`20is`20used`20to`20set`20up`20"game`20starter")5.624`20F`201.326(hosts,
V`20where`20people`20inter`5C
Xested`20in`20`5C214nding`20new`20opponents`20are`20matched`20by`20some`20crite
Vria`20`5C(such`20as)144
X523.2`20R(ability)144`20535.2`20Q`203.583(,o)-.65`20G`203.583(rb)179.993`20535
V.2`20S`203.582(yat)
X191.906`20535.2`20S`201.082
X(ournament`20schedule`5C),`20and`20have`20their`20games`20started`20automatica
Vlly)211.29`20535.2
XR`206.082(.F)-.65`20G`201.082(or`20a`20current)491.746`20535.2`20R
X(listing`20of`20game`20starter`20hosts,`20see`20the`20README`20`5C214le.)144
V`20547.2`20Q(Game`20V)108
X564`20Q(alue)-1.11`20E`20F2(Ldb)144`20576`20Q`20F0`201.107(detects`20the`20end
V`20of`20the`20game,`20gamm`5C
Xons,`20and`20backgammons,`20and`20noti`5C214es`20both`20players`20of`20the)3.6
V06`20F`20.179
X(game`20value`20when`20the`20game`20is`20over)144`20588`20R`205.178(.T)-.55
V`20G`20.178
X(he`20Jacoby`20rule`20may`20be`20enabled,`20as`20may`20European`20scoring,`20t
Vo)296.61`20588`20R
X(calculate`20the`20game`20value`20as`20desired.)144`20600`20Q(Online`20Help
V`20Screen)108`20616.8`20Q
XF2(Ldb)144`20628.8`20Q`20F0`20.514(has`20an`20online,`20context`20sensitive
V`20help`20facility`20that`5C
X`20lists`20the`20available`20commands`20for`20the`20current)3.014`20F(screen.)
V144`20640.8`20Q
X(Match`20Play)108`20657.6`20Q`20F2(Ldb)144`20669.6`20Q`20F0`20.224(can`20suppo
Vrt`20matches`20that`20pl`5C
Xay`20to`20any`20desired`20point`20total,`20and`20will`20continue`20to`20start
V`20games`20until)2.724`20F
X(one`20player`20reaches`20that`20total.)144`20681.6`20Q`20F1(OPTIONS)72`20703.
V2`20Q/F3`2010
X/Times-Bold@0`20SF(-r)108`20715.2`20Q(ead)-.18`20E`20F0`20.908
X(Mail`20is`20read,`20and`20the`20games`20are`20updated`20and`20saved.)144`2071
V5.2`20R`20.909
X(The`20user`20is`20not`20prompted`20for`20his`20moves.)5.908`20F(If)5.909`20E
X(neither`20`5C255read`20nor`20`5C255play`20are`20given,`20both`20are`20assumed
V.)144`20727.2`20Q
X(October`206,`201992)273.645`20768`20Q(1)535`20768`20Q`20EP
X%%Page:`202`202
XBP/F0`2010/Times-Roman@0`20SF`20402.18(LDB`5C(1`5C)`20LDB`5C(1`5C))72`2048`20R
V/F1`2010/Times-Bold@0
XSF(-play)108`2084`20Q`20F0`20.507(Any`20games`20that`20are`20waiting`20for`20l
Vocal`20input`20are`20displ`5C
Xayed`20for`20the`20user`20to`20process.)144`2084`20R`20.507(No`20mail`20is`20r
Vead.)5.507`20F
X(If`20neither`20`5C255read`20nor`20`5C255play`20are`20given,`20both`20are`20as
Vsumed.)144`2096`20Q`20F1
X(-color`20xy)108`20112.8`20Q`20F0`20.507
X(The`20colors`20for`20the`20game`20started`20by`20this`20ldb`20run`20are`20set
V`20to`20x`20and`20y)144`20124.8`20R
X5.507(.T)-.65`20G`20.507(he`20`5C214rst`20color`20is`20played`20by`20the)420.8
V58`20124.8`20R`202.21
X(local`20user)144`20136.8`20R`204.71(,a)-.4`20G`202.21
X(nd`20the`20other`20is`20played`20by`20the`20opponent.)196.06`20136.8`20R`202.
V21
X(Legal`20color`20characters`20are`20any`20printing)7.21`20F(character)144`2014
V8.8`20Q`203.618(,e)
X-.4`20G`201.118
X(xcept`20that`20x`20and`20y`20may`20not`20be`20the`20upper`20and`20lower`20cas
Ve`20of`20the`20same`20character)
X190.798`20148.8`20R`206.119(.T)-.55`20G(he)530.56`20148.8`20Q(default`20is`20"
V`5C255color`20rw".)
X144`20160.8`20Q`20F1(-dir)108`20177.6`20Q(ection`20up/down)-.18`20E`20F0`20.10
V9(This`20sets`20the`20di`5C
Xrection`20of`20play`20for`20the`20local`20user`20for`20the`20game`20started
V`20by`20this`20ldb`20run.)144
X189.6`20R`20.108(The`20default`20is)5.108`20F("`5C255direction`20up".)144`2020
V1.6`20Q`20F1
X(-myaddr`20addr)108`20218.4`20Q`20F0`20-1(Yo)144`20230.4`20S`201.476(ur`20mail
V`20address`20is`20set`20to)
X1`20F/F2`2010/Times-Italic@0`20SF(addr)3.976`20E`20F0`201.477
X(for`20games`20started`20on`20this`20ldb`20run.)3.976`20F`201.477(This`20overr
Vides`20the`20address)
X6.477`20F(speci`5C214ed`20in)144`20242.4`20Q`20F2(.ldbr)2.5`20E(c.)-.37`20E
V`20F1(-start`20user)108
X259.2`20Q`20F0`203.303(Ag)144`20271.2`20S`20.803(ame`20is`20started`20with`20t
Vhe`20speci`5C214ed`20user)
X159.523`20271.2`20R`205.803(.T)-.55`20G(he)325.404`20271.2`20Q`20F2(user)3.303
V`20E`20F0(ar)3.303
XE`20.803(gument`20may`20be`20any`20e`5C255mail`20address`20that`20is)-.18`20F
V`203.156
X(valid`20for`20your`20host.)144`20283.2`20R`203.156
X(Some`20e`5C255mail`20addresses`20will`20need`20to`20be`20quoted`20if`20they
V`20contain`20shell)8.156`20F
X2.808(metacharacters.`20The)144`20295.2`20R`20F2(user)2.808`20E`20F0(ar)2.808
V`20E`20.308
X(gument`20may`20also`20be`20an)-.18`20F`20F2(alias)2.807`20E`20F0`20.307
X(for`20an`20opponent`20you`20have`20played`20before.)2.807`20F`20.336(Aliases
V`20are`20de`5C214ned`20in`5C
X`20the`20people`20`5C214le,`20and`20are`20initialized`20to`20the`20`5C214rst
V`20name`20of`20the`20opponent,`20w`5C
+-+-+-+-+-+-+-+- END OF PART 4 +-+-+-+-+-+-+-+-