home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / vmsnet / ldb / part16 < prev    next >
Encoding:
Internet Message Format  |  1993-04-07  |  31.8 KB

  1. Path: uunet!olivea!pagesat!netsys!agate!howland.reston.ans.net!zaphod.mps.ohio-state.edu!usc!news.service.uci.edu!unogate!mvb.saic.com!dayton.saic.com!dayvd.dayton.saic.com!ake
  2. From: ake@dayvd.dayton.saic.com (Earle Ake)
  3. Newsgroups: vmsnet.sources.games
  4. Subject: ldb - Long Distance Backgammon [16/16]
  5. Message-ID: <1993Apr8.110739.1@dayvd.dayton.saic.com>
  6. Date: 8 Apr 93 16:07:39 GMT
  7. Organization: Science Applications Intl Corp - Dayton, OH
  8. Lines: 696
  9. NNTP-Posting-Host: dayvd.dayton.saic.com
  10. Xref: uunet vmsnet.sources.games:677
  11.  
  12. -+-+-+-+-+-+-+-+ START OF PART 16 -+-+-+-+-+-+-+-+
  13. XAlthough`20by`20default`20upward`20play`20goes`20toward`20the`20top`20of`20the
  14. V`20screen,
  15. Xthis`20can`20be`20reversed`20(for`20your`20screen`20only)`20by`20the`20"Invert
  16. V"
  17. Xcommand`20in`20the`20Control`20menu,
  18. Xaccessible`20via`20the
  19. X`7B`5Cit`20--control`7D
  20. Xcommand`20line`20argument.`20`20The`20default`20for`20this`20line`20is`20"up",
  21. V
  22. Xand`20is`20overridden`20by`20the
  23. X`7B`5Cit`20--direction`7D
  24. Xcommand`20line`20argument.
  25. X`5CIPitem`7B`7Binitialboard`7D`7D
  26. XAs`20was`20alluded`20to`20earlier,`20your`20screen`20shows`20one`20of
  27. Xthree`20possible`20board`20images`20at`20any`20time.`20`20Although
  28. Xthe`20purpose`20for`20this
  29. Xwill`20be`20explained`20later,`20this`20line`20allows`20you`20to`20select
  30. Xwhich`20of`20these`20three`20boards`20should`20be`20displayed`20initially.
  31. XThe`20legal`20values`20are`20"before",`20"after",`20and`20"current".
  32. XThe`20default`20is`20"current".
  33. X`5CIPitem`7B`7Bautoroll`7D`7D
  34. XIf`20you`20were`20the`20last`20to`20double,`20you`20have`20no`20option
  35. Xbut`20to`20roll`20the`20dice`20when`20it`20is`20your`20turn.`20`20If
  36. Xautoroll`20is`20enabled,`20ldb`20will`20roll`20the`20dice`20for`20you`20automa
  37. Vtically
  38. Xin`20this`20case.`20`20For`20those`20that`20prefer`20consistency,`20autoroll
  39. Xmay`20be`20disabled,`20although`20attempting`20to`20double`20when`20you
  40. Xdoubled`20last`20will`20cause`20an
  41. Xerror`20message.`20`20Possible`20values`20for`20autoroll`20are`20"yes"`20and
  42. V`20"no",
  43. Xwith`20"yes"`20being`20the`20default.
  44. X`5CIPitem`7B`7Bautomove`7D`7D
  45. XEach`20time`20you`20roll`20the`20dice,`20ldb`20determines`20how`20many
  46. Xlegal`20ways`20there`20are`20for`20you`20to`20use`20your`20rolls.`20`20In`20th
  47. Ve
  48. Xrelatively`20unusual`20case`20where`20there`20is`20only`20one`20way
  49. Xfor`20you`20to`20use`20your`20rolls,`20ldb`20can`20automatically`20apply
  50. Xthis`20move`20to`20your`20board`20before`20displaying`20it.`20`20Automove
  51. Xis`20disabled`20by`20default`20because`20quite`20frankly`20it's
  52. Xpretty`20annoying.`20`20Possible`20values`20for`20automove`20are`20"yes"
  53. Xand`20"no",`20with`20"no"`20being`20the`20default.
  54. X`5CIPitem`7B`7Bautodouble`7D`7D
  55. XOne`20of`20the`20official`20rules`20of`20backgammon`20allows`20for
  56. Xautomatically`20doubling`20the`20game`20value`20when`20the`20opening
  57. Xroll`20is`20a`20tie.`20`20The`20rules`20go`20on`20to`20state`20that`20automati
  58. Vc
  59. Xdoubling`20is`20only`20to`20be`20used`20when`20the`20players`20agree`20beforeh
  60. Vand
  61. Xon`20its`20use`20and`20limitations.`20`20The`20method`20ldb`20uses`20to`20impl
  62. Vement
  63. Xthis`20somewhat`20vague`20rule`20is`20to`20allow`20each`20player`20to`20specif
  64. Vy
  65. Xa`20maximum`20number`20of`20autodoubles`20they`20are`20willing`20to`20accept
  66. V`20in
  67. X`7B`5Cit`20.ldbrc,`7D
  68. Xand`20for`20the`20maximum`20number`20of`20autodoubles`20applied`20to`20any`20g
  69. Vame
  70. Xto`20be`20the`20lesser`20of`20the`20two`20players'`20specified`20limits.
  71. XFor`20example,`20if`20you`20set
  72. X`7B`5Cit`20autodouble=4`7D
  73. Xin`20your`20.ldbrc,`20no`20game`20you`20play`20will`20ever`20be`20autodoubled
  74. Xmore`20than`204`20times,`20although`20the`20number`20of`20tied`20opening`20rol
  75. Vls
  76. Xis`20obviously`20not`20limited.`20`20However,`20if`20you`20were`20to`20start
  77. V`20a`20game
  78. Xwith`20someone`20who`20had`20set
  79. X`7B`5Cit`20autodouble=2`20,`7D
  80. Xthat`20game`20would`20be`20limited`20to`20at`20most`202`20autodoubles.`20`20If
  81. V`20you`20don't
  82. Xwant`20to`20play`20automatic`20doubles,`20set
  83. Xautodouble=0,`20which`20is`20also`20the`20default.
  84. X`5CIPitem`7B`7Bsuperkey`7D`7D
  85. XIf`20you`20live`20in`20fear`20of`20roving`20supervisors`20(or`20other
  86. Xfun-impaired`20individuals)`20running`20across`20you`20playing`20an
  87. Xinnocent`20game`20of`20backgammon,
  88. Xyou`20may`20want`20to`20enable`20the`20superkey`20function.
  89. XJust`20pick`20a`20key`20on`20the`20keyboard`20you`20never`20use`20in`20ldb,
  90. V`20such`20as`20the
  91. Xbackquote,`20and`20put`20a`20line`20in
  92. X`7B`5Cit`20.ldbrc`7D
  93. Xsetting`20superkey`20to`20the
  94. X`7B`5Cit`20decimal`5C`20ASCII`5C`20code`7D
  95. Xof`20the`20key`20you`20want;`20for`20example,`20to`20use`20the`20backquote`20k
  96. Vey,
  97. Xuse`20"superkey=96".
  98. XOnly`20single--character`20keys`20are`20allowed,`20and
  99. Xthe`20key`20you`20select`20will`20not`20be`20usable`20for`20normal`20purposes
  100. Xwithin`20ldb.`20`20Make`20it`20one`20you`20can`20hit`20in`20a`20hurry.
  101. X`5CIPitem`7B`7Bsupercmd`7D`7D
  102. XIf`20you'd`20rather`20have`20a`20program`20of`20your`20choice`20come`20up
  103. Xinstead`20of`20the`20shell`20when`20the`20superkey`20is`20pressed,
  104. Xput`20it`20on`20this`20line.`20`20It`20will`20be`20passed
  105. Xunchanged`20to`20a`20shell`20via`20the`20system()`20function.
  106. XVMS`20users`20should`20read`20the`20note`20in`20the`20section`20titled
  107. X"VMS`20NOTES"`20on`20supercmd`20functionality.
  108. X`5CIPitem`7B`7Bcheckpoint`7D`7D
  109. XThis`20option`20keeps`20the`20gamefile`20up`20to`20date`20by`20writing`20it
  110. V`20out
  111. Xwhenever`20the`20dice`20are`20rolled`20or`20a`20message`20is`20sent.`20`20This
  112. V
  113. Xprevents`20game`20information`20from`20being`20lost`20if`20ldb`20crashes,
  114. Xyour`20machine`20goes`20down,`20or`20what`20have`20you.`20`20This`20option`20i
  115. Vs
  116. Xenabled`20by`20default,`20and`20I`20highly`20recommend`20you`20leave`20it
  117. Xthat`20way.`20`20If`20you`20just`20can't`20stand`20the`20thought`20of`20a`20fe
  118. Vw`20extra
  119. Xwrites`20to`20disk,`20you`20can`20disable`20it`20with`20"checkpoint=no".
  120. XOn`20your`20own`20head`20be`20it.
  121. X`5CIPitem`7B`7Bdebug`7D`7D
  122. XThis`20option`20enables`20various`20debug`20messages.`20`20It`20is`20a`20bitma
  123. Vp,
  124. Xwith`20each`20set`20bit`20enabling`20debug`20messages`20from`20a`20different
  125. V`20part
  126. Xof`20ldb.`20`20Most`20people`20will`20want`20to`20leave`20it`20at`200,`20which
  127. V`20is
  128. Xthe`20default.`20`20If`20you`20want`20debug`20messages,`20look`20for`20the
  129. Xdefinitions`20of`20DB`5C_*`20in`20ldb.h.
  130. X`5Cend`7BIPlist`7D`5Cpar
  131. X`5Cshead`7BPEOPLE`20FILE`7D
  132. XLdb`20maintains`20a`20list`20of`20all`20of`20the`20people`20you
  133. Xhave`20ever`20played.`20`20This`20file`20is`20used`20for`20several`20purposes:
  134. V
  135. X`5Cbegin`7BIPlist`7D
  136. X`5CIPitem`7B`7B1`7D`7D
  137. XIt`20stores`20the`20number`20of`20games,`20points,`20gammons,`20backgammons,
  138. Xand`20matches`20you`20have`20won`20and`20lost`20to`20that`20person.
  139. X`5CIPitem`7B`7B2`7D`7D
  140. XIt`20stores`20the`20address`20for`20that`20person,`20and`20the
  141. Xaddress`20that`20person`20should`20use`20to`20get`20to`20you.
  142. XIt`20also`20allows`20you`20to`20assign`20an`20alias`20to`20that`20person,
  143. Xand`20to`20use`20that`20alias`20when`20starting`20a`20game`20instead
  144. Xof`20the`20full`20e--mail`20address.
  145. X`5CIPitem`7B`7B3`7D`7D
  146. XIt`20stores`20information`20that`20allows`20ldb`20to`20reject
  147. Xstart`20messages`20from`20defunct`20games.
  148. X`5Cend`7BIPlist`7D`5Cpar
  149. XNormally,`20you`20should`20never`20have`20to`20edit`20the
  150. Xpeople`20file,`20but`20it`20is`20described`20here`20in`20case
  151. Xyou`20need`20to`20for`20some`20reason.`20`20It`20is`20in`20the`20same
  152. Xoverall`20format`20as`20.ldbrc`20(name/value`20pairs).
  153. X`5Cbegin`7BIPlist`7D
  154. X`5CIPitem`7B`7Baddr`7D`7D
  155. XThis`20is`20the`20address`20of`20the`20opponent.`20`20This`20is`20what
  156. Xuniquely`20defines`20the`20record,`20in`20case`20you`20are`20playing
  157. Xtwo`20people`20with`20the`20same`20name.
  158. X`5CIPitem`7B`7Bname`7D`7D
  159. XThis`20is`20the`20name`20of`20the`20opponent.
  160. X`5CIPitem`7B`7Balias`7D`7D
  161. XThis`20is`20a`20"nickname"`20you`20can`20assign`20to
  162. Xan`20opponent.`20`20When`20a`20new`20opponent`20is`20found,
  163. Xthe`20alias`20is`20initialized`20to`20the`20first`20word`20of
  164. Xthe`20opponent's`20name,`20with`20all`20upper`20case`20letters
  165. Xchanged`20to`20lower.`20`20You`20can`20change`20the`20alias`20to
  166. Xany`20desired`20string`20with`20a`20text`20editor`20(just`20make`20sure
  167. Xldb`20isn't`20running`20at`20the`20time,`20or`20your`20changes`20will
  168. Xbe`20lost).
  169. X`5CIPitem`7B`7Bmyaddr`7D`7D
  170. XThis`20is`20the`20address`20that`20this`20opponent`20should`20use`20to
  171. Xmail`20to`20you.`20`20This`20saves`20you`20from`20having`20to`20specify
  172. Xthe`20-myaddr`20argument`20when`20starting`20a`20game,`20and`20is
  173. Xespecially`20important`20with`20permanent`20games,`20since
  174. Xthese`20games`20are`20started`20automatically`20without`20giving
  175. Xyou`20a`20chance`20to`20change`20your`20address.`20`20If`20you`20only
  176. Xhave`20one`20e--mail`20path,`20you`20can`20ignore`20this.
  177. XThis`20field`20is`20initialized`20to`20the`20value`20of`20the
  178. X`7B`5Cit`20--myaddr`7D
  179. Xoption`20at`20the`20time`20the`20first`20game`20with
  180. Xthis`20opponent`20is`20started,`20or`20to
  181. Xthe`20value`20of`20myaddr`20from`20.ldbrc`20if`20no
  182. X`7B`5Cit`20--myaddr`7D
  183. Xoption`20was`20used.
  184. X`5CIPitem`7B`7Bequiv`7D`7D
  185. XThe`20presence`20of`20this`20field`20flags`20this`20as`20an`20"equiv"
  186. Xrecord.`20`20Equiv`20records`20allow`20one`20opponent`20to`20have`20multiple
  187. Xe--mail`20addresses,`20but`20to`20cause`20all`20of`20them`20to`20refer`20to
  188. Xone`20people`20record.`20`20Equiv`20records`20have`20no`20valid`20fields
  189. Xexcept
  190. X`7B`5Cit`20addr`7D
  191. Xand
  192. X`7B`5Cit`20equiv,`7D
  193. Xand`20must`20be`20preceded`20by`20the`20record`20they`20refer`20to`20in`20the
  194. V`20people`20file.
  195. X`5CIPitem`7B`7Bfence`7D`7D
  196. XThe`20fence`20is`20defined`20as`20the`20start`20time`20of`20the`20most
  197. Xrecently`20started`20game`20that`20has`20finished.`20`20If`20that`20makes
  198. Xno`20sense,`20don't`20worry,`20you`20should`20never`20have`20to`20mess
  199. Xwith`20it.`20`20It`20is`20used`20to`20discard`20old`20start`20messages`20that
  200. Xyou`20forgot`20to`20clean`20out`20of`20your`20mail.
  201. X`5CIPitem`7B`7Bscore`7D`7D
  202. XThis`20is`20an`20array`20of`2010`20numbers`20that`20represent,`20in`20order:
  203. X`5CIPitem`7B`7B`7D`7D
  204. X`5Cnofill
  205. X`20`20`20`20`20-`20Games`20won
  206. X`20`20`20`20`20-`20Games`20lost
  207. X`20`20`20`20`20-`20Points`20won
  208. X`20`20`20`20`20-`20Points`20lost
  209. X`20`20`20`20`20-`20Gammons`20won
  210. X`20`20`20`20`20-`20Gammons`20lost
  211. X`20`20`20`20`20-`20Backgammons`20won
  212. X`20`20`20`20`20-`20Backgammons`20lost
  213. X`20`20`20`20`20-`20Matches`20won
  214. X`20`20`20`20`20-`20Matches`20lost
  215. X`5Cfill
  216. X`5CIPitem`7B`7B`7D`7D
  217. XThis`20information`20is`20stored`20purely`20for`20whatever`20purposes`20you
  218. Xcan`20think`20of.
  219. X`5CIPitem`7B`7Bend`7D`7D
  220. XThis`20line`20is`20required`20to`20separate`20people`20records.`20`20If`20you
  221. Xhand`20enter`20a`20record,`20you`20must`20be`20sure`20to`20put`20an`20end`20ma
  222. Vrker
  223. Xor`20your`20record`20will`20merge`20with`20the`20next`20one,`20which`20is
  224. Xnot`20what`20you`20want.
  225. X`5Cend`7BIPlist`7D`5Cpar
  226. X`5Cshead`7BSTARTING`20A`20GAME`7D
  227. XTo`20start`20a`20game,`20you`20must`20use`20the
  228. X`7B`5Cit`20--start`7D
  229. Xcommand`20line`20argument,`20along`20with`20the`20e--mail`20address`20of
  230. Xthe`20person`20you`20wish`20to`20play`20with.
  231. XFor`20example,
  232. X`5Cnofill
  233. X`20`20`20`20`20ldb`20--start`20mybuddy@back.gammon.com
  234. X`5Cfill
  235. XIf`20you`20want`20to`20play`20'w',`20and`20make`20your`20opponent`20play
  236. X'b',`20use`20the`20command
  237. X`5Cnofill
  238. X`20`20`20`20`20ldb`20--color`20wb`20--start`20black@blah.blah.blah
  239. X`5Cfill
  240. XSee`20the
  241. XOPTIONS`20section`20for`20more`20details`20on`20the`20available
  242. Xcommand`20line`20arguments.
  243. X`7B`5Cit`20Ldb`7D
  244. Xwill`20not`20allow`20you`20to`20play`20with`20yourself,`20but
  245. Xthat's`20ok`20because`20you'd`20probably`20lose.
  246. X`5Cpar
  247. XWhen`20you`20start`20a`20game,`20ldb`20sends`20your`20e--mail`20address
  248. Xto`20your`20opponent,`20along`20with
  249. Xyour`20opening`20roll.`20`20When`20your`20opponent`20receives
  250. Xyour`20message,`20his`20ldb`20will`20roll`20his`20opening`20roll,`20and
  251. Xdecide`20who`20won.`20`20If`20you`20won,`20his`20ldb`20will`20send`20your`20ld
  252. Vb
  253. Xa`20message`20to`20that`20effect,`20and`20the`20board`20will`20come`20up
  254. Xon`20your`20screen`20with`20that`20roll`20in`20your`20move`20block.`20`20If
  255. V`20he
  256. Xwon,`20he`20will`20use`20the`20opening`20roll`20and`20his`20ldb`20will`20send
  257. Xyour`20ldb
  258. Xa`20message`20telling`20you`20how`20he`20moved.`20`20Either`20way,`20the`20gam
  259. Ve`20is`20off
  260. Xand`20running.
  261. X`5Cpar
  262. XIf,`20by`20unfortunate`20chance,`20the`20opening`20roll`20is`20a`20tie,
  263. Xyour`20opponent's`20ldb`20will`20send
  264. Xyour`20ldb`20a`20message`20to`20that`20effect.
  265. XThis`20will`20cause`20a`20new`20opening`20roll`20sequence`20as
  266. Xdescribed`20above.
  267. XA`20message`20will`20be`20printed`20telling`20you
  268. Xwhat's`20going`20on;
  269. Xjust`20keep`20feeding`20the`20incoming`20messages`20to`20ldb,`20and
  270. Xit`20will`20take`20care`20of`20everything.
  271. X`5Cpar
  272. X`5Cshead`7BPLAYING`20A`20GAME`7D
  273. XWhen`20it`20is`20your`20turn,`20the`20game`20will`20be`20displayed`20on`20your
  274. V`20screen,
  275. Xand`20you`20will`20be
  276. Xfaced`20with`20three`20options:`20Roll,`20Double,`20or`20Concede.
  277. XUnless`20you`20are`20very`20cocky,`20I`20would`20not`20suggest`20doubling
  278. Xat`20this`20point.`20`20You`20could`20always`20concede,`20but`20I`20really
  279. Xthink`20that`20would`20be`20selling`20yourself`20short.
  280. XSo`20you`20should`20choose`20"Roll".
  281. XJust`20press`20"r",`20and`20watch`20your`20roll`20appear`20on
  282. Xyour`20move`20block`20(along`20the`20right`20side`20of`20the`20screen,`20under
  283. V`20the
  284. Xword`20"You").`20`20You`20should`20see`20two`20numbers`20appear`20(four`20if
  285. V`20you
  286. Xrolled`20doubles),`20and`20the`20word`20UNUSED`20beside`20them.
  287. XDecide`20which`20of`20the`20rolls`20you`20want`20to`20use`20first,`20and`20pre
  288. Vss
  289. Xthe`20number`20of`20that`20roll.`20`20For`20example,`20say`20you`20rolled
  290. X1`206,`20and`20you`20want`20to`20move`20the`20obvious`208--7,`2013--7`20to
  291. Xmake`20your`20bar`20point.
  292. XJust`20hit`20"6".`20`20Notice`20the`20cursor`20jump`20up`20to`20your`20move
  293. V`20block,`20beside
  294. Xthe`20"6"`20roll?`20`20It`20is`20waiting`20for`20you`20to`20enter`20the`20poin
  295. Vt`20you`20want
  296. Xto`20move`20from.`20`20Press`20"1"`20"3"`20(don't`20hit`20return).`20`20You
  297. V`20should`20see
  298. Xa`20piece`20move`20from`2013`20to`207,`20and`20this`20fact`20will`20be`20refle
  299. Vcted`20in
  300. Xyour`20move`20block`20as`20well.`20`20Now,`20press`20"1".`20`20Again`20the`20c
  301. Vursor
  302. Xjumps`20to`20the`20move`20block,`20and`20you`20type`20"8".
  303. XThe`20second`20entry`20in`20the`20move`20block
  304. Xreflects`20this`20move,`20as`20does`20the`20board.`20`20Happy?`20`20If`20not,
  305. V`20press
  306. X"r";`20this`20will`20reset`20your`20rolls`20to`20UNUSED`20and`20put
  307. Xthe`20board`20back`20to`20how`20it`20was`20before`20you`20moved,
  308. Xand`20then`20you`20can`20enter`20some`20different`20moves.`20`20Otherwise,`20h
  309. Vit`20"s"
  310. X(not`20"q"!)
  311. Xto`20send`20the`20move.`20`20The`20cursor`20will`20jump`20down`20to`20the`20me
  312. Vssage`20area,
  313. Xwhere`20you`20get`20a`20chance`20to`20enclose`20a`20message`20to`20your`20oppo
  314. Vnent,
  315. Xperhaps`20to`20gloat`20over`20the`20great`20move`20you`20just`20made.
  316. XYou`20only`20get`202`20lines`20of`2056`20characters,`20so`20keep`20it`20short.
  317. V`20`20When
  318. Xyou`20are`20done,`20press`20$<$return$>$.`20`20Your`20move`20is`20on`20its`20w
  319. Vay!
  320. X`5Cpar
  321. XThere`20are`20three`20shortcuts`20you`20can`20use
  322. Xafter`20you`20have`20entered`20your`20first`20move:
  323. X`5Cbegin`7BIPlist`7D
  324. X`5CIPitem`7B`7B1.`7D`7D
  325. XYou`20can`20press`20$<$return$>$,`20which`20will`20"repeat"`20your`20last`20mo
  326. Vve.
  327. XThat`20is,`20your`20next`20remaining`20roll`20will`20move`20from`20the`20same
  328. Xpoint`20as`20your`20last`20one`20moved`20from.`20`20This`20is`20handy`20when
  329. Xusing`20doubles`20to`20move`20more`20than`20one`20piece`20from`20the`20same
  330. V`20point.
  331. X`5CIPitem`7B`7B2.`7D`7D
  332. XYou`20can`20press`20$<$space$>$,`20which`20will`20"continue"`20your`20last`20m
  333. Vove.
  334. XThat`20is,`20your`20next`20remaining`20roll`20will`20move`20from`20the
  335. Xpoint`20your`20last`20move`20ended`20on.
  336. X`5CIPitem`7B`7B3.`7D`7D
  337. XYou`20can`20press`20"p",`20which`20will`20attempt`20to`20make`20the`20point
  338. V`20your
  339. Xlast`20move`20ended`20on.`20`20In`20our`201`206`20example`20above,`20you`20cou
  340. Vld`20have
  341. Xjust`20hit`20"p"`20after`20you`20moved`2013--7,`20and`20ldb`20would`20have`20f
  342. Vigured
  343. Xout`20that`20to`20make`20the`207`20point`20with`20the`20remaining`20roll`20of
  344. V`201,
  345. Xit`20would`20have`20to`20move`20a`20piece`20from`20the`208`20point.
  346. X`5Cend`7BIPlist`7D`5Cpar
  347. XIn`20addition,`20there`20is`20one`20more`20shortcut`20that`20may`20be`20used
  348. Xwith`20any`20roll.`20`20If`20you`20want`20to`20use`20a`20roll`20to`20bear`20of
  349. Vf
  350. Xa`20piece,`20you`20can`20just`20hit`20"o".`20`20Ldb`20will`20locate`20the
  351. Xpoint`20(if`20any)`20from`20which`20pieces`20may`20be`20legally`20borne`20off
  352. Xby`20the`20next`20unused`20roll,`20and`20make`20that`20move`20automatically.
  353. XYou`20can`20also`20select`20a`20roll,`20then`20hit`20"o".
  354. X`5Cpar
  355. XIf`20you`20use`20your`20moves,`20hit`20"Send",`20and`20start`20to`20enter`20yo
  356. Vur
  357. Xmessage,`20then`20realize`20you`20made`20a`20mistake,`20you`20can`20press
  358. XESC`20to`20get`20out`20of`20send`20and`20back`20into`20the`20game,`20where
  359. Xyou`20can`20use`20"Reset"`20and`20re--enter`20your`20moves.
  360. X`5Cpar
  361. X`5Cshead`7BDOUBLING`7D
  362. XIf`20you`20decide`20to`20double,`20just`20choose`20"Double"`20instead`20of
  363. X"Roll".`20`20You`20will`20get`20to`20enclose`20a`20message,`20just`20like`20wh
  364. Ven
  365. Xyou`20send`20a`20move,`20then`20your`20message`20gets`20sent.`20`20Once`20you
  366. V`20have
  367. Xdoubled,`20you`20cannot`20double`20again`20until`20your`20opponent`20does`20so
  368. V,
  369. Xso`20ldb`20automatically`20selects`20"Roll"`20and`20sends`20you`20to`20the
  370. Xnext`20menu.`20`20If`20you`20don't`20like`20this,`20you`20can`20disable`20it
  371. V`20by
  372. Xsetting
  373. X`7B`5Cit`20autoroll=no`7D
  374. Xin`20.ldbrc.
  375. X`5Cpar
  376. XIf`20your`20opponent`20doubles,`20you`20will`20see`20a`20message`20just`20unde
  377. Vr
  378. Xthe`20board`20to`20that`20effect,`20and`20a`20menu`20will`20come`20up
  379. Xallowing`20you`20to`20Accept`20or`20Decline`20the`20double.
  380. XDeclining`20the`20double`20means`20you`20lose`20the`20game`20for`20the
  381. Xcurrent`20game`20value.`20`20Accepting`20means`20that`20the`20game
  382. Xcontinues,`20but`20its`20value`20is`20doubled.`20`20The`20current
  383. Xgame`20value`20is`20shown`20to`20the`20left`20of`20the`20board.`20`20After
  384. Xyou`20accept,`20you`20should`20see`20this`20display`20move`20next`20to`20your
  385. Xhome`20board,`20indicating`20that`20you`20own`20the`20doubling`20cube.
  386. X`5Cpar
  387. XIf`20the`20Crawford`20rule`20is`20in`20effect,`20and`20the`20either
  388. Xplayer`20is`20within`201`20point`20of`20winning`20the`20match,
  389. Xdoubling`20is`20illegal,`20and`20will`20result`20in`20an`20error`20message.
  390. X`5Cpar
  391. X`5Cshead`7BBOARDS`7D
  392. X`7B`5Cit`20Ldb`7D
  393. Xmaintains`20three`20board`20images`20at`20all`20times.`20`20These`20are:
  394. X`5Cbegin`7BIPlist`7D
  395. X`5CIPitem`7B`7B1`7D`7D
  396. XThe`20board`20before`20your`20opponent's`20last`20move.
  397. XIt`20is`20for`20display`20purposes`20only,`20so`20you`20can`20see`20your
  398. Xopponent's`20move`20"before`20and`20after".`20`20The`20pieces`20your`20opponen
  399. Vt
  400. Xis`20going`20to`20move`20are`20highlighted.
  401. X`5CIPitem`7B`7B2`7D`7D
  402. XThe`20board`20after`20your`20opponent's`20last`20move.
  403. XIt`20shows`20the`20condition`20of`20the
  404. Xboard`20after`20your`20opponent's`20last`20move,`20with`20the`20pieces`20he
  405. Xmoved`20highlighted.
  406. X`5CIPitem`7B`7B3`7D`7D
  407. XThe`20current`20board.`20`20This`20is`20the`20"real"`20board`20that`20shows
  408. V`20the
  409. Xcurrent`20state`20of`20the`20game.
  410. XNothing`20is`20highlighted.
  411. X`5Cend`7BIPlist`7D`5Cpar
  412. XBy`20default,`20ldb`20displays`20the`20Current`20board`20at`20all`20times.`20
  413. V`20If
  414. Xyou`20want`20to`20see`20the`20other`20boards,`20use`20the`20Board`20command
  415. X(provided`20it`20is`20in`20the`20current`20menu).`20`20This`20will`20cycle`20t
  416. Vhrough
  417. Xthe`20three`20boards`20in`20the`20order`20they`20are`20listed`20above.`20`20Th
  418. Ve`20second
  419. Xline`20of`20the`20screen`20tells`20you`20which`20board`20is`20displayed`20(nea
  420. Vr`20the`20left).`20`20When
  421. Xyou`20roll,`20ldb`20automatically`20switches`20to`20the`20current`20board`20if
  422. V
  423. Xit`20is`20not`20already`20up.`20`20You`20can`20set`20which`20of`20these`20thre
  424. Ve`20boards
  425. Xis`20initially`20displayed`20via`20the
  426. X`7B`5Cit`20initialboard`7D
  427. Xsetting`20in`20.ldbrc.
  428. X`5Cpar
  429. X`5Cshead`7BENTERING`20COMMENTS`7D
  430. XWhenever`20you`20send`20a`20move`20to`20your`20opponent,`20you`20are
  431. Xgiven`20the`20opportunity`20to`20enclose`20a`20two`20line`20comment.
  432. XWhile`20entering`20your`20comment,`20certain`20keys`20have`20special`20meaning
  433. V.
  434. XThese`20are:
  435. X`5Cbegin`7BIPlist`7D
  436. X`5CIPitem`7B`7BBS/DEL`7D`7D
  437. XThe`20backspace`20and`20delete`20(or`20rubout)`20keys`20both`20erase`20the
  438. Xlast`20character`20typed.`20`20You`20can`20backspace`20from`20one`20line`20to
  439. Xthe`20previous`20one.
  440. X`5CIPitem`7B`7B`5C`5E`7B`7DW/`5C`5E`7B`7DB`7D`7D
  441. XThe`20`5C`5E`7B`7DW`20and`20`5C`5E`7B`7DB`20(control-W`20and`20control-B)`20ke
  442. Vys`20both`20erase`20the
  443. Xlast`20word`20typed.`20`20Words`20are`20delimited`20by`20spaces.
  444. X`5CIPitem`7B`7B`5C`5E`7B`7DX/`5C`5E`7B`7DU`7D`7D
  445. XThe`20`5C`5E`7B`7DX`20and`20`5C`5E`7B`7DU`20(control-X`20and`20control-U)`20ke
  446. Vys`20erase`20the
  447. Xcurrent`20line`20and`20move`20to`20the`20end`20of`20the`20previous`20line,
  448. Xor`20to`20the`20beginning`20of`20the`20first`20line`20if`20used`20on`20the
  449. Xfirst`20line.
  450. X`5CIPitem`7B`7BRETURN`7D`7D
  451. XIf`20you`20press`20return`20on`20an`20empty`20line,`20or`20on`20the`20last`20l
  452. Vine,
  453. Xthe`20comment`20is`20finished.`20`20Otherwise,`20the`20cursor`20moves`20to`20t
  454. Vhe
  455. Xnext`20line.
  456. X`5CIPitem`7B`7BESC`7D`7D
  457. XThe`20escape`20key`20aborts`20the`20operation`20(e.g.`20Send),`20restores
  458. Xthe`20previous`20comment,`20and`20returns`20to`20the`20previous`20menu.
  459. XThis`20allows`20you`20to`20change`20your`20mind`20and`20back`20out`20of
  460. Xan`20operation.
  461. X`5Cend`7BIPlist`7D`5Cpar
  462. XAll`20other`20keys`20are`20entered`20into`20the`20comment.`20`20When`20you`20r
  463. Veach
  464. Xthe`20end`20of`20a`20line,`20ldb`20word-wraps`20to`20the`20next`20line,`20or
  465. V`20beeps
  466. Xif`20you`20are`20at`20the`20end`20of`20the`20last`20line.`20`20Note`20that`20t
  467. Vhe
  468. Xsuperkey`20is`20still`20active`20while`20entering`20comments,`20and
  469. Xcannot`20be`20entered`20into`20a`20comment.
  470. X`5Cpar
  471. X`5Cshead`7BCONTROLLING`20A`20GAME`7D
  472. XThe
  473. X`7B`5Cit`20--control`7D
  474. Xoption`20permits`20you`20to`20control`20your`20games`20in
  475. Xcertain`20ways.`20`20Each`20of`20your`20current`20games`20are
  476. Xdisplayed,`20one`20at`20a`20time,`20just`20as`20they`20are`20when`20you
  477. Xare`20playing,`20allowing`20you`20to`20perform`20any`20of`20the
  478. Xfunctions`20on`20the`20control`20menu.
  479. XThe`20control`20menu`20has`20the`20following`20commands:
  480. X`5Cbegin`7BIPlist`7D
  481. X`5CIPitem`7B`7BInvert`7D`7D
  482. XThis`20allows`20you`20to`20invert`20the`20board`20for`20this`20game.`20`20The
  483. Xboard`20will`20invert`20immediately`20on`20your`20screen,`20so`20you`20can
  484. Xsee`20if`20you`20like`20it.`20`20Pressing
  485. X`7B`5Cit`20Invert`7D
  486. Xagain`20will`20put`20it`20back`20to`20normal.`20`20Inverting`20the`20board`20d
  487. Voes
  488. Xnot`20affect`20the`20point`20numbering`20or`20the`20color`20you`20play,
  489. Xit`20merely`20draws`20the`20board`20with`20the`20low-numbered`20points`20at
  490. Xthe`20top`20of`20the`20screen`20rather`20than`20the`20bottom.`20`20You`20may
  491. V`20find
  492. Xit`20easier`20to`20make`20all`20of`20your`20games`20play`20a`20certain`20direc
  493. Vtion.
  494. X`5CIPitem`7B`7BResend`7D`7D
  495. XFrom`20time`20to`20time,`20messages`20may`20be`20lost`20due`20to`20faulty`20ma
  496. Vilers
  497. Xor`20human`20error.`20`20If`20your`20last`20message`20gets`20lost,`20you`20can
  498. V
  499. Xregenerate`20it`20with`20the
  500. X`7B`5Cit`20Resend`7D
  501. Xcommand.`20`20There`20is`20no`20harm`20in`20regenerating`20messages,`20as
  502. Xldb`20will`20ignore`20duplicate`20messages.`20`20If`20you`20and`20your`20oppon
  503. Vent
  504. Xhave`20forgotten`20whose`20move`20it`20is,`20the`20easiest`20way`20to`20get
  505. V`20going
  506. Xagain`20is`20for`20both`20of`20you`20to`20resend`20your`20last`20message.`20
  507. V`20The`20one
  508. Xthat`20got`20lost`20will`20be`20accepted,`20and`20the`20game`20will`20be`20off
  509. V
  510. Xand`20running`20again.`20`20So`20that`20you`20can`20resend`20the`20last`20move
  511. V
  512. Xof`20a`20game,`20completed`20games`20are`20kept`20in`20your`20.ldbdata`20for
  513. X1`20week,`20after`20which`20they`20are`20deleted.`20`20They`20may`20be`20delet
  514. Ved
  515. Xsooner`20with`20the`20Delete`20Game`20command.`20`20Note`20also`20that
  516. Xgames`20that`20have`20been`20waiting`20for`20your`20opponent`20for`20more`20th
  517. Van
  518. X1`20week`20have`20an`20automatic`20resend`20performed`20whenever`20you`20run
  519. V`20ldb.
  520. X`5CIPitem`7B`7BGet`5C`20Resend`7D`7D
  521. XThis`20allows`20you`20to`20send`20a`20message`20to`20your`20opponent's
  522. Xldb`20requesting`20a`20resend.`20`20This`20saves`20your`20opponent`20the
  523. Xtrouble`20of`20getting`20into
  524. X`7B`5Cit`20--control,`7D
  525. Xfinding`20which`20game`20you're`20talking`20about,`20and`20resending.
  526. XInstead,`20he`20can`20just`20feed`20your`20resend`20request`20message`20into
  527. Xldb`20like`20it`20was`20a`20regular`20move.`20`20Version`201.0`20of`20ldb
  528. Xnot`20only`20does`20not`20support`20this`20feature,`20but`20will`20crash
  529. Xif`20a`20resend`20request`20packet`20is`20sent`20to`20it,`20so
  530. X`7B`5Cit`20--control`7D
  531. Xwill`20check`20to`20make`20sure`20your`20opponent`20is`20running
  532. Xthe`20proper`20version
  533. Xbefore`20sending`20the`20message.
  534. X`5CIPitem`7B`7BScreen`5C`20Dump`7D`7D
  535. XThis`20command`20makes`20an`20exact`20copy`20of`20the`20screen`20in`20the
  536. Xfile`20"ldb`5C_screen.dmp".`20`20This`20could`20be`20useful`20if`20you
  537. Xwant`20to`20mail`20the`20board`20to`20someone`20or`20print`20it`20out.
  538. X`5CIPitem`7B`7BDelete`5C`20Game`7D`7D
  539. XThis`20command`20marks`20a`20game`20for`20deletion.`20`20The`20game`20is`20not
  540. V`20deleted
  541. Xuntil`20you`20quit,`20and`20you`20can`20undelete`20it`20by`20pressing`20D`20ag
  542. Vain.
  543. XNormally,`20you`20should`20not`20delete`20a`20game`20in`20this`20manner,
  544. Xyou`20should`20play`20until`20someone`20wins`20or`20concedes.`20`20The
  545. X`7B`5Cit`20Delete`5C`20Game`7D
  546. Xcommand`20can`20be`20used`20to`20get`20rid`20of`20games`20where`20your`20oppon
  547. Vent
  548. Xdoesn't`20answer`20his`20mail,`20or`20doesn't`20want`20to`20play,`20etc.
  549. X`5CIPitem`7B`7BNext`5C`20Game`7D`7D
  550. XThe`20next`20game`20is`20displayed.`20`20If`20there`20is`20no`20next`20game,
  551. Xthis`20choice`20is`20equivalent`20to
  552. X`7B`5Cit`20Quit.`7D
  553. X`5CIPitem`7B`7BQuit`7D`7D
  554. XThis`20allows`20you`20to`20exit`20from
  555. X`7B`5Cit`20--control`20.`7D
  556. XIf`20you`20made`20any`20changes`20to`20your`20games,`20you`20will`20be`20given
  557. V`20the`20opportunity
  558. Xto`20save`20these`20changes,`20then`20ldb`20will`20exit.
  559. X`5Cend`7BIPlist`7D`5Cshead`7BVMS`20NOTES`7D
  560. X`5Cpar
  561. XVMS`20users`20have`20a`20few`20unique`20considerations:
  562. X`5Cpar
  563. XOn`20VMS,`20the`20default`20file`20names`20are`20changed`20from`20.ldb*`20to
  564. V`20ldb.*.`20`20This
  565. Xgroups`20all`20ldb`20files`20together.
  566. X`5Cpar
  567. XVMS`20mail`20doesn't`20append
  568. Xmessages`20to`20an`20existing`20file,`20it`20creates`20new`20versions.
  569. XTo`20accommodate`20this,`20vms-compiled`20executables`20will`20search`20all
  570. V`20versions
  571. Xof`20a`20file`20by`20default.`20`20This`20applies`20to`20files`20specified`20o
  572. Vn`20the`20command
  573. Xline`20as`20well`20as`20the`20file`20specified`20in`20your`20ldb.rc.`20`20You
  574. V`20can`20disable
  575. Xthis`20in`20either`20case`20by`20specifying`20a`20version`20number,`20or`20by
  576. V`20specifying
  577. Xversion`20number`200`20to`20get`20the`20most`20current`20version.`20`20The`20d
  578. Vefault`20setting
  579. Xin`20ldb.rc`20is`20to`20scan`20sys`5C$login:ldb.rcv;*.`20`20You`20might`20want
  580. V`20to`20change
  581. Xthis`20to`20ldb.txt;*,`20since`20that`20is`20the`20default`20extension`20added
  582. V`20by
  583. Xmail`20when`20you`20extract`20a`20file.`20`20If`20you`20use`20multiple`20versi
  584. Vons,`20you
  585. Xshould`20be`20careful`20not`20to`20PURGE`20until`20after`20you`20have`20run
  586. V`20ldb.
  587. X`5Cpar
  588. XIf`20you`20have`20the`20Eunice`20package,`20ldb`20will`20compile`20and`20run
  589. V`20under`20it`20fine,
  590. Xbut`20any`20files`20created`20by`20the`20Eunice--compiled`20version
  591. X(most`20notably`20the`20games`20file)
  592. Xwill`20be`20incompatible`20with`20the`20VAX`20C--compiled`20version.`20`20Use
  593. V`20the
  594. Xunixtovms`20command`20to`20convert.
  595. X`5Cpar
  596. XLdb`20is`20available`20in`20vms`5C_share`20format`20with`20the`20manual`20pref
  597. Vormatted.
  598. XIf`20you`20have`20MMS,`20you`20can`20use`20the`20makefile.vms`20provided`20by
  599. V`20entering:
  600. X`5Cnofill
  601. X`20`20`20`20`20`5C$`20rename`20makefile.vms`20makefile.
  602. X`20`20`20`20`20`5C$`20make
  603. X`5Cfill
  604. XIf`20you`20don't`20have`20a`20make`20available,`20you`20can`20compile`20with:
  605. X`5Cnofill
  606. X`20`20`20`20`20`5C$`20@makeldb
  607. X`5Cfill
  608. XAfter`20ldb`20is`20compiled,`20you'll`20probably`20want
  609. Xto`20define`20a`20symbol`20such`20as:
  610. X`5Cnofill
  611. X`20`20`20`20`20`5C$`20ldb`20:==`20`5C$dua0:`5Bme.ldb`5Dldb
  612. X`5Cfill
  613. Xso`20you`20can`20run`20it.
  614. X`5Cpar
  615. XThe`20VMS`20implementation`20spawns`20a`20subprocess`20with`20no`20command`20w
  616. Vhen`20the
  617. Xsuperkey`20is`20pressed.`20`20You`20can`20enter`20LOGOUT`20or`20EOJ`20to`20ret
  618. Vurn`20to`20the
  619. Xgame.`20`20If`20you`20define`20a`20command`20to`20run`20when`20the`20superkey
  620. V`20is`20pressed,
  621. Xthe`20command`20will`20be`20run,`20but`20you`20will`20still`20need`20to`20logo
  622. Vut`20of
  623. Xthe`20subprocess`20to`20return`20to`20ldb.
  624. X`5Cpar
  625. X`5Cshead`7BBUGS`7D
  626. X`5Cpar
  627. XA`20game`20file`20created`20by`20ldb`20under`20Eunice`20must`20be`20run`20thro
  628. Vugh
  629. X"unixtovms"`20before`20the`20VAX--C`20ldb`20can`20read`20it.
  630. X`5Cpar
  631. XThe`20"Concede"`20command`20violates`20the`20rules,`20in`20that`20it`20allows
  632. V`20one
  633. Xplayer`20to`20unilaterally`20settle`20the`20game`20for`20the`20current`20game
  634. V`20value.
  635. XThis`20could`20be`20used`20to`20avoid`20an`20impending`20gammon.
  636. X`5Cpar
  637. XThe`20superkey`20function`20only`20works`20when`20ldb`20is`20waiting`20for`20a
  638. V`20key.
  639. XIf`20ldb`20is`20doing`20something`20time-consuming,`20such`20as`20calculating
  640. Xlegal`20moves,`20the`20superkey`20will`20not`20work`20until`20the`20calculatio
  641. Vn
  642. Xis`20complete.
  643. X`5Cpar
  644. XThere`20should`20be`20a`20way`20to`20play`20interactively`20(using`20socket
  645. V`20connections,
  646. Xfor`20example),`20rather`20than`20via`20e--mail.
  647. X`5Cpar
  648. XUnder`20Eunice,`20there`20is`20a`20bug`20when`20delmail`20is`20enabled,
  649. Xreceived`20mail`20is`20in`20a`20file`20with`20multiple`20versions,
  650. Xand`20these`20versions`20are`20entered`20on`20the`20command`20line
  651. X(as`20opposed`20to`20being`20specified`20by`20a`20pattern`20in`20.ldbrc).
  652. XEunice`20handles`20multiple`20versions`20by`20appending`20a`20dot`20and`20the
  653. V`20version
  654. Xnumber`20to`20all`20versions`20of`20the`20file`20but`20the`20newest`20version,
  655. V
  656. Xto`20which`20it`20appends`20nothing.`20`20When`20the`20most`20recent`20version
  657. V`20is`20deleted,
  658. Xthe`20next`20older
  659. Xversion`20becomes`20the`20most`20recent,`20and`20has`20no`20version`20suffix
  660. Xattached.`20`20This`20file`20will`20be`20skipped,`20since`20its`20name`20chang
  661. Ved
  662. Xbetween`20the`20time`20the`20file`20list`20was`20created`20and`20the`20file
  663. V`20is`20opened.
  664. XAll`20other`20files`20will`20be`20scanned`20properly.`20`20The`20work-around
  665. V`20for`20this
  666. Xis`20to`20not`20use`20a`20pattern`20like`20'ldb`20ldb.txt*'`20on`20the`20comma
  667. Vnd`20line
  668. Xto`20specify`20all`20versions`20of`20the`20file,`20but`20rather`20use`20'ldb
  669. V`20ldb.txt.*`20ldb.txt'
  670. Xso`20that`20the`20most`20recent`20version`20is`20scanned`20(and`20thus`20delet
  671. Ved)`20last.
  672. XAlternatively,`20the`20pattern`20can`20be`20quoted`20so`20that`20ldb`20interpr
  673. Vets
  674. Xit`20instead`20of`20the`20shell.
  675. X`5Cpar
  676. XThe
  677. X`7B`5Cit`20--myaddr`7D
  678. Xcommand`20line`20option`20should`20override`20the
  679. Xmyaddr`20line`20in`20the`20people`20file.
  680. X`5Cpar
  681. XVersion`201.0`20of`20ldb`20only`20allowed`20the`20colors`20red,
  682. Xwhite,`20and`20black,`20represented`20by`20r,`20w,`20and`20b,
  683. Xrespectively.`20`20Although`20ldb`201.0`20will`20allow`20games
  684. Xto`20be`20started`20and`20played`20correctly`20with`20different
  685. Xcolors,`20the`20move`20blocks`20will`20have`20the`20string`20"*BAD`20COLOR*"
  686. Xdisplayed`20where`20the`20color`20should`20be,`20making`20it`20difficult
  687. Xto`20figure`20out`20which`20color`20you`20are`20playing.`20`20Upgrading
  688. Xto`20a`20newer`20ldb`20will`20fix`20this.`20`20Nevertheless,`20if`20you
  689. Xare`20playing`20someone`20who`20is`20using`20ldb`201.0,`20you`20may`20want
  690. Xto`20restrict`20your`20color`20choices`20to`20r,`20w,`20and`20b.
  691. X`5Cpar
  692. XThe`20Crawford`20rule`20option`20may`20be`20incorrect.`20`20As`20implemented,
  693. Xit`20prevents`20doubling`20for`20any`20game`20where`20either`20player
  694. Xis`20within`20one`20point`20of`20winning`20the`20match.`20`20Some`20people
  695. Xplay`20the`20Crawford`20rule`20such`20that`20doubling`20is`20only
  696. Xillegal`20for`20the`20first`20game`20that`20a`20player
  697. Xis`20withing`20one`20point`20of`20winning;`20if`20that`20player
  698. Xdoes`20not`20win`20the`20Crawford`20rule`20game,
  699. Xdoubling`20for`20subsequent`20games`20is`20allowed.
  700. XAn`20authoritative`20description`20of`20this`20rule`20is`20needed.
  701. X%
  702. X%`20end`20of`20input`20file:`20ldb.man
  703. X%--------------------------------------------------
  704. X`5Cend`7Bdocument`7D
  705. $ call unpack LDB.TEX;1 1031385950 ""
  706. $ v=f$verify(v)
  707. $ exit
  708.