home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / games / volume13 / gnuchss4 / part12 < prev    next >
Encoding:
Internet Message Format  |  1992-08-02  |  40.6 KB

  1. Path: uunet!zephyr.ens.tek.com!master!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v13i100:  gnuchess4 - GNU Chess 4.0, Part12/12
  5. Message-ID: <3067@master.CNA.TEK.COM>
  6. Date: 19 Jun 92 15:55:44 GMT
  7. Sender: news@master.CNA.TEK.COM
  8. Lines: 1238
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: cracraft@rice-chex.ai.mit.edu (Stuart Cracraft)
  12. Posting-number: Volume 13, Issue 100
  13. Archive-name: gnuchess4/Part12
  14. Supersedes: gnuchess2: Volume 4, Issue 37-40
  15. Environment: 
  16.  
  17.  
  18.  
  19. #! /bin/sh
  20. # This is a shell archive.  Remove anything before this line, then unpack
  21. # it by saving it into a file and typing "sh file".  To overwrite existing
  22. # files, type "sh file -c".  You can also feed this as standard input via
  23. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  24. # will see the following message at the end:
  25. #        "End of archive 12 (of 12)."
  26. # Contents:  WARNING doc/ARTICLE doc/GENERAL doc/HEURISTICS doc/INSTALL
  27. #   doc/checkbook.1 doc/game.1 doc/gnuan.1 misc/match
  28. #   src/CLp43.May31-114248B src/README src/ataks.c src/version.h
  29. #   test/test.inet test/test1 test/test10 test/test11 test/test13
  30. #   test/test14 test/test15 test/test16 test/test2 test/test3
  31. #   test/test4 test/test5 test/test6 test/test7 test/test8 test/test9
  32. #   test/testm
  33. # Wrapped by billr@saab on Fri Jun 19 08:36:03 1992
  34. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  35. if test -f 'WARNING' -a "${1}" != "-c" ; then 
  36.   echo shar: Will not clobber existing file \"'WARNING'\"
  37. else
  38. echo shar: Extracting \"'WARNING'\" \(344 characters\)
  39. sed "s/^X//" >'WARNING' <<'END_OF_FILE'
  40. XThere is a problem with the gcc 2.00 pre processor and FIONREAD
  41. Xwill not compile properly on gcc 2.00. If you get an error
  42. Xmessage you may need to substitute a value for FIONREAD in
  43. XElapsedTime. The correct line for a SunsparcOS4 is included
  44. Xas a comment. cpp on 2.00 does not substitute in quotes,
  45. XsunOS cc and gcc 1.40 handle this correctly.
  46. END_OF_FILE
  47. if test 344 -ne `wc -c <'WARNING'`; then
  48.     echo shar: \"'WARNING'\" unpacked with wrong size!
  49. fi
  50. # end of 'WARNING'
  51. fi
  52. if test -f 'doc/ARTICLE' -a "${1}" != "-c" ; then 
  53.   echo shar: Will not clobber existing file \"'doc/ARTICLE'\"
  54. else
  55. echo shar: Extracting \"'doc/ARTICLE'\" \(3475 characters\)
  56. sed "s/^X//" >'doc/ARTICLE' <<'END_OF_FILE'
  57. X
  58. X                          GNU Chess
  59. X                      by Stuart Cracraft
  60. X        copyright 1987,1988,1989,1990 Stuart Cracraft
  61. X
  62. X
  63. X   GNU Chess is a communal chess program. Contributors donate their
  64. Xtime and effort in order to make it a stronger, better, sleeker program.
  65. XContributions take many forms: interfaces to high-resolution displays,
  66. Xopening book treatises, speedups of the underlying algorithms, additions
  67. Xof extra heuristics. These contributions are then distributed to the
  68. Xlarge user-base so that all may enjoy the fruits of our labor. The
  69. Xoriginal and continuing purpose of this project is to permanently end 
  70. Xthe rampant hoarding of computer chess software that has been the 
  71. Xcase for the past 20 years.
  72. X
  73. X   Many people have contributed to GNU Chess. Their contributions have
  74. Ximproved the program from being a patzer (weak program) to being a
  75. Xgrandpatzer (decently strong program). In its growth since initial
  76. Xrelease, GNU Chess has gone from approximately class D to strong
  77. Xmaster strength. It beats the Fidelity Mach 3 (USCF 2265) rather
  78. Xhandily when run on a Sparc-1 (RISC). Since these types of RISC
  79. Xchips are becoming fairly common, the age of "master chess
  80. Xin your computer lab" is now a reality. From there, it will be a
  81. Xshort hop to master chess in your home with FSF software.
  82. X
  83. X   GNU Chess's structure is a hybrid of the Shannon Type-A and
  84. XType-B methods. It conducts a full-width search to a fixed-depth
  85. Xand then continues with a quiescence search for many more ply.
  86. XThis quiescence search helps the program find positions which
  87. Xcan be safely evaluated and which are not too turbulent. If
  88. Xa terminal position is too turbulent, the evaluation will be
  89. Xhighly inaccurate. Additional searching by investigating series
  90. Xof captures, checks, and other potentially imbalance-producing
  91. Xmoves is quite helpful.
  92. X
  93. X  GNU Chess will sacrifice pieces in order to reach known winning
  94. Xendings. Also, it uses a trade-down bonus to encourage the stronger
  95. Xside to trade off certain types of pieces thus reaching a more
  96. Xsimplified and therefore ostensibly "clearer" position.
  97. X
  98. X  GNU Chess has certain types of knowledge regarding easier endgames.
  99. XThis allows it to play these endings somewhat better than might be
  100. Xexpected.
  101. X
  102. X  GNU Chess has time heuristics that it uses to improve its handling 
  103. Xof time-controls and hasten its making of "obvious" moves. It also
  104. Xthinks on the opponent's time.
  105. X  GNU Chess is interfaced to the SUN Windows and X Windows
  106. Xdisplay protocols and can display its pieces in elaborate format,
  107. Xsimilar to chess diagrams.
  108. X
  109. X  GNU Chess has an opening book which consists of many variations
  110. Xfrom MCO (Modern Chess Openings), and some from ECO.
  111. X
  112. X  For comparison purposes, GNU Chess running on a VAX 8650 is
  113. Xstronger than the famous Chess 4.5 running on a CDC 6400. On
  114. Xa Sparc-1, GNU 1.55 (or later) is probably about 2350-2400
  115. Xstrength (USCF rating estimated).
  116. X
  117. X  We wish to acknowledge the contributions of the following
  118. Xindividuals: (in alphabetical order) Jim Aspnes, Wayne Christopher,
  119. XSteve Dougherty, David Goldberg, Richard Greenblatt, Larry
  120. XKaufman, David Kittinger, Hans-Erik Sandstrom, Richard Stallman, 
  121. XJohn Stanback, Ken Thompson.
  122. X
  123. X  Contact information: The author may be reached by a variety of
  124. Xmethods. Via U.S. mail: Stuart Cracraft, P.O. Box 2841, Laguna
  125. XHills, Ca. 92654-2841. Via Email: cracraft@wheaties.ai.mit.edu
  126. XThe author may also be contacted via the Free Software Foundation, Inc.
  127. X675 Massachusetts Ave.,Cambridge MA 02139.
  128. END_OF_FILE
  129. if test 3475 -ne `wc -c <'doc/ARTICLE'`; then
  130.     echo shar: \"'doc/ARTICLE'\" unpacked with wrong size!
  131. fi
  132. # end of 'doc/ARTICLE'
  133. fi
  134. if test -f 'doc/GENERAL' -a "${1}" != "-c" ; then 
  135.   echo shar: Will not clobber existing file \"'doc/GENERAL'\"
  136. else
  137. echo shar: Extracting \"'doc/GENERAL'\" \(2286 characters\)
  138. sed "s/^X//" >'doc/GENERAL' <<'END_OF_FILE'
  139. X                  GNU Chess
  140. X
  141. XCopyright (C) 1987 Stuart Cracraft
  142. X  (Copying permission notice at the end.)
  143. X
  144. XGNU Chess is your program (as long as you follow the copyright and
  145. Xlicensing rules listed in the file COPYING). Your contributioinspire current and future software
  146. Xdevelopers. 
  147. X
  148. XThis document
  149. X-------------
  150. XThis document is not meant to be a an introduction to computer chess.
  151. XThe following books are excellent introductions and treatises.
  152. XThey are listed in order of difficulty:
  153. X
  154. X   Computer Chess (2nd edition), by David Welsh and Boris Bazcynski
  155. X   The Joy of Computer Chess, by David Levy
  156. X   Chess Skill in Man and Machine (2nd edition), by Peter Frey
  157. X   How Computers Play Chess, by  David Levy
  158. X
  159. X
  160. XCurrent Distribution
  161. X--------------------
  162. XThe most recent distribution of GNU Chess contains the following
  163. Xmain-level files and directories:
  164. X
  165. X    Filename         Purpose
  166. X   ------------------------------------------------------
  167. Xdoc:
  168. X
  169. XARTICLE ---------- general gnuchess documentation ---------
  170. XARTICLE.2
  171. XCHANGES
  172. XCOPYING
  173. XGENERAL
  174. XHEURISTICS
  175. XMOVE-GEN
  176. XPORTING
  177. X
  178. XChangeLog ----------- specific gnuchess documentation ----------
  179. XREADME
  180. XREADME.font - ChessFont copyright info
  181. XREADME.output - how to read gnuchess output
  182. X
  183. Xcheckbook.1 ---------- man pages -----------
  184. Xcheckgame.1
  185. Xgame.1
  186. Xgnuan.1
  187. Xgnuan.hlp
  188. Xpostprint.1
  189. Xgnuchess.1
  190. X
  191. Xmisc:
  192. XChessFont - ChessFont for use with game and postprint
  193. Xmatch*    - script to play a match with xboard
  194. Xgnuchess2.book - opening book
  195. X
  196. Xsrc:
  197. XMakefile - unix makefile
  198. XMakefile.dos - MSDOS makefile not updated, needs a dos fan
  199. X
  200. Xataks.c - sources for the chess playing program
  201. Xataks.h
  202. Xbook.c
  203. Xdspcom.c
  204. Xeval.c
  205. Xgenmoves.c
  206. Xinit.c
  207. Xmain.c
  208. Xgnuchess.h
  209. Xsearch.c
  210. Xutil.c
  211. Xversion.h
  212. X
  213. Xnondsp.c - ASCII interface for acsii terminal/ chesstool/ xboard
  214. Xnuxdsp.c - IBM PC graphics character set based user interface.
  215. Xuxdsp.c -  curses based user interface
  216. X
  217. Xpostprint.c - source for postprint
  218. Xcheckbook.c - source for checkbook
  219. Xcheckgame.c - source for checkgame
  220. Xgnuan.c - source for main analysis module.
  221. Xgame.c  - source for game.
  222. X
  223. Xtest: directory containing 16 test positions from Levy book.
  224. X    each file also shows correct move.
  225. X
  226. XRESULTS.p11 - results from test cases on a sparc 2.
  227. Xtest1
  228. Xtest10
  229. Xtest11
  230. Xtest12
  231. Xtest13
  232. Xtest14
  233. Xtest15
  234. Xtest16
  235. Xtest2
  236. Xtest3
  237. Xtest4
  238. Xtest5
  239. Xtest6
  240. Xtest7
  241. Xtest8
  242. Xtest9
  243. END_OF_FILE
  244. if test 2286 -ne `wc -c <'doc/GENERAL'`; then
  245.     echo shar: \"'doc/GENERAL'\" unpacked with wrong size!
  246. fi
  247. # end of 'doc/GENERAL'
  248. fi
  249. if test -f 'doc/HEURISTICS' -a "${1}" != "-c" ; then 
  250.   echo shar: Will not clobber existing file \"'doc/HEURISTICS'\"
  251. else
  252. echo shar: Extracting \"'doc/HEURISTICS'\" \(6524 characters\)
  253. sed "s/^X//" >'doc/HEURISTICS' <<'END_OF_FILE'
  254. XThis file contains a description of GNU's heuristics.
  255. X   Copyright (C) 1986, 1987 Free Software Foundation, Inc.
  256. X
  257. XThis file is part of CHESS.
  258. X
  259. XCHESS is distributed in the hope that it will be useful,
  260. Xbut WITHOUT ANY WARRANTY.  No author or distributor
  261. Xaccepts responsibility to anyone for the consequences of using it
  262. Xor for whether it serves any particular purpose or works at all,
  263. Xunless he says so in writing.  Refer to the CHESS General Public
  264. XLicense for full details.
  265. X
  266. XEveryone is granted permission to copy, modify and redistribute
  267. XCHESS, but only under the conditions described in the
  268. XCHESS General Public License.   A copy of this license is
  269. Xsupposed to have been given to you along with CHESS so you
  270. Xcan know your rights and responsibilities.  It should be in a
  271. Xfile named COPYING.  Among other things, the copyright notice
  272. Xand this notice must be preserved on all copies.  */
  273. X
  274. X -- requested by main author
  275. XHeuristic descriptions for CHESS.
  276. X
  277. XRevision: 12-16-87
  278. X
  279. XCopyright (c) 1987 by John Stanback
  280. XModified 1991 by Mike McGann
  281. X
  282. XTiming:
  283. X
  284. X  An initial quantum of time = Time Remaining/(2 * moves remaining +1) 
  285. X  is alocated to the search. After this time is used up a check is made
  286. X  if the score has changed more than ZSCORE points between the last 
  287. X  two search levels or if at least ZDEPTH has not been reached or if
  288. X  the choosen move has changed between the last two search levels
  289. X  the time is doubled. 
  290. X
  291. XEvaluation:
  292. X
  293. X  Here is a brief description of the heuristics used in the positional 
  294. X  evaluator of the GNU Chess program. Many heuristics are functions of the 
  295. X  stage of the game which is based on the total non-pawn material remaining 
  296. X  for both sides. 
  297. X    
  298. X
  299. XPAWNS
  300. X    The material value of a pawn is 100 points. Isolated pawns get a 
  301. X    penalty depending on which file they occupy: 
  302. X       (12,14,16,20,20,16,14,12) for files (a..h).
  303. X    Doubled pawns (which are not also isolated) get a penalty of 12 
  304. X    points. Backward pawns (defined simply as not being defended by a 
  305. X    pawn with the square in front also not defended by a a pawn) are 
  306. X    penalized 6 points. A 4 point penalty is also invoked for each attack 
  307. X    by the opponent to a backward pawn and for a backward pawn on a 
  308. X    half-open file. Pawn Advancement in the centre is given a bonus of 
  309. X    about 4 points per rank in the opening increasing to about 8 points 
  310. X    per rank in the ending. Advancement on the edges is given a lower 
  311. X    bonus. Pawns on the e and d files and on the 2nd rank are given a 10 
  312. X    point penalty. An additional penalty of 15 points is invoked if these 
  313. X    pawns are also blocked. Pawns within 2 squares of the king are given 
  314. X    a 10 point bonus. Passed pawns are given a bonus for increasing rank 
  315. X    which is a function of stage of the game and of whether the opponent 
  316. X    blocks or attacks one or more squares in front of the pawn or if the 
  317. X    opponents king is in the square of the pawn. This bonus ranges from 
  318. X    about 15 points for a pawn on the second rank up to about 300 points 
  319. X    for a passed pawn on the 7th rank which can't be stopped from 
  320. X    queening. 
  321. X              
  322. X
  323. XKNIGHTS
  324. X    The material value of a knight is 330 points. The main heuristic for 
  325. X    knights is a bonus for proximity to the centre. This varies from 0 
  326. X    points in the corners to 30 points in the centre. Knights are also 
  327. X    given a bonus for being within 2 squares of each enemy piece. This 
  328. X    bonus is a function of the stage of the game, equalling 4 points in 
  329. X    the end game. A penalty of 1 point per square is given for distance 
  330. X    from either king. A bonus of up to 8 points (depends on stage) is 
  331. X    given for knights which can't be driven away by enemy pawns. 
  332. X
  333. X
  334. XBISHOPS
  335. X    The material value of a bishop is 330 points. Bishops are given a 
  336. X    bonus as material falls off the board equalling 10 points in the end 
  337. X    game. Bishops get a bonus for mobility and Xray mobility thru pieces 
  338. X    but not pawns. This bonus ranges from -4 points for a totally blocked 
  339. X    bishop up to 18 points for a bishop attacking 12 or more squares. 
  340. X    Xray attacks on an enemy R,Q,K or any undefended piece are given an 8 
  341. X    point bonus. Bishops are given a bonus of 14 points if they lie on 
  342. X    the edge of the board up to 22 points if the lie in the centre. A 
  343. X    bishop is given a bonus of up to 5 points for each attack to a square 
  344. X    adjacent to the enemy king. 
  345. X
  346. X
  347. XROOKS
  348. X    The material value of a rook is 520 points. Rook mobility is handled 
  349. X    similiarly to bishops with a bonus of 0 points if blocked up to 20 
  350. X    points if attacking 12 squares or more. A bonus of 8 points for Xray 
  351. X    attacks is handled as it is for bishops. Rooks are given a bonus of 
  352. X    10 points for occupying a file with no friendly pawns and a bonus of 
  353. X    4 points if no enemy pawns lie on that file. After the opening Rooks 
  354. X    are penalized slightly depending on "taxicab" distance to the enemy 
  355. X    king. 
  356. X  
  357. X
  358. XQUEENS
  359. X    The material value of a queen is 980 points. The only heuristic for a 
  360. X    queen is that after the opening it is penalized slightly for 
  361. X    "taxicab" distance to the enemy king. 
  362. X
  363. X
  364. XKINGS
  365. X    Kings are given a penalty for proximity to the centre in the opening 
  366. X    and a bonus for proximity to the centre in the endgame. The penalty 
  367. X    is about 24 points for being in the centre in the opening with a 
  368. X    bonus of about 36 points for being in the centre in the endgame. 
  369. X    Except when the otherside has only pawns. Then the bonus is turned off.
  370. X    Kings are penalized for lying on an open or half-open file or if the 
  371. X    adjacent file closest to the corner is open or half-open. This 
  372. X    penalty is up to 23 points in the opening and goes to zero in the end 
  373. X    game. The King is penalized up to 8 points if there are no pawns 
  374. X    immediately adjacent. A penalty is invoked depending on the number of 
  375. X    "safe" checks available by the opponent. This penalty ranges from 6 
  376. X    points for one such check to 50 points for 4 or more. Depending on 
  377. X    game stage, Kings are given up to 10 points for castling and a 
  378. X    penalty of up to 40 points for moving before castling. 
  379. X  
  380. X
  381. XSPECIAL
  382. X    If more than one piece is "hung" (attacked and not defended or 
  383. X    attacked by an enemy piece of lower value) an extra penalty of 10 
  384. X    points is invoked for that side and the search may be extended one 
  385. X    ply. Pinned or trapped pieces are treated similarly. A special mating 
  386. X    routine is used if one side has only a king and the other has mating 
  387. X    material. 
  388. X
  389. END_OF_FILE
  390. if test 6524 -ne `wc -c <'doc/HEURISTICS'`; then
  391.     echo shar: \"'doc/HEURISTICS'\" unpacked with wrong size!
  392. fi
  393. # end of 'doc/HEURISTICS'
  394. fi
  395. if test -f 'doc/INSTALL' -a "${1}" != "-c" ; then 
  396.   echo shar: Will not clobber existing file \"'doc/INSTALL'\"
  397. else
  398. echo shar: Extracting \"'doc/INSTALL'\" \(184 characters\)
  399. sed "s/^X//" >'doc/INSTALL' <<'END_OF_FILE'
  400. X1. edit src/Makefile. Normally only LIBDIR and BINDIR need to be changed.
  401. X
  402. X2. in src type 'make' and all programs will be make.
  403. X
  404. X3. type 'make install' to install in BINDIR and LIBDIR
  405. END_OF_FILE
  406. if test 184 -ne `wc -c <'doc/INSTALL'`; then
  407.     echo shar: \"'doc/INSTALL'\" unpacked with wrong size!
  408. fi
  409. # end of 'doc/INSTALL'
  410. fi
  411. if test -f 'doc/checkbook.1' -a "${1}" != "-c" ; then 
  412.   echo shar: Will not clobber existing file \"'doc/checkbook.1'\"
  413. else
  414. echo shar: Extracting \"'doc/checkbook.1'\" \(1064 characters\)
  415. sed "s/^X//" >'doc/checkbook.1' <<'END_OF_FILE'
  416. X.TH CHECKBOOK GNUCHESS
  417. X.SH NAME
  418. Xcheckbook
  419. X.SH SYNOPSIS
  420. X.B checkbook
  421. X.B [-x] 
  422. Xfilename
  423. X.SH DESCRIPTION
  424. X.I Checkbook
  425. Xis a program to check the opening book of 
  426. X.I gnuchess
  427. Xfor illegal moves, or to check the output of 
  428. X.I xboard
  429. Xfor illegal moves.
  430. X.PP
  431. X.I checkbook
  432. Xaccepts a file containing chess moves in algebraic notation and checks the file
  433. Xfor illegal moves. The file may be either a complete game or opening segments of a game
  434. Xseparated by lines beginning with '#' or '!'.
  435. X
  436. XCastling and en-passant moves are allowed. But in castling moves no check is made whether
  437. Xthe pieces have moved before or whether a intervening square is under attack.
  438. X
  439. XThe
  440. X.B -x
  441. Xoption allows use of 
  442. X.I checkbook
  443. Xwith 
  444. X.I xboard
  445. Xgame files. Its only effect is to cause the first 2 lines of the file to be skipped.
  446. XMoves may be numbered but do not need to be. Moves must be in full algebraic
  447. Xformat (i.e. a2a4). Short notation is not allowed.
  448. X
  449. X.SH "FUNCTION LETTERS"
  450. X.TP
  451. X.B -x
  452. XInput file is 
  453. X.I xboard
  454. Xgame file.
  455. X.SH BUGS
  456. X.PP
  457. X.fi
  458. X.SH SEE ALSO
  459. X.nf
  460. Xgnuchess(6)
  461. Xchesstool(6)
  462. Xxboard(6)
  463. X.fi
  464. X
  465. END_OF_FILE
  466. if test 1064 -ne `wc -c <'doc/checkbook.1'`; then
  467.     echo shar: \"'doc/checkbook.1'\" unpacked with wrong size!
  468. fi
  469. # end of 'doc/checkbook.1'
  470. fi
  471. if test -f 'doc/game.1' -a "${1}" != "-c" ; then 
  472.   echo shar: Will not clobber existing file \"'doc/game.1'\"
  473. else
  474. echo shar: Extracting \"'doc/game.1'\" \(890 characters\)
  475. sed "s/^X//" >'doc/game.1' <<'END_OF_FILE'
  476. X.TH GAME GNUCHESS
  477. X.SH NAME
  478. Xgame
  479. X.SH SYNOPSIS
  480. X.B game
  481. X[start [end]]
  482. Xfilename
  483. X]
  484. X.SH DESCRIPTION
  485. X.I game
  486. Xcreates a board by board postscript output file on stdout for all or part of a chess game.
  487. XInput is a 'chess.lst' file output by
  488. X.I gnuchess.
  489. XWhen combined with the 
  490. X.I ChessFont
  491. Xfile and sent to a postscript printer it will show all boards in the range specified.
  492. XFor each board the move and the current score are also printed.
  493. X.B ChessFont
  494. Xis courtesy of Andy Walker, Maths Dept., Nott'm Univ., UK. (anw@maths.nott.ac.uk) 
  495. Xand is copyrighted by him. 
  496. X
  497. XMoves starting at 
  498. X.I start
  499. Xand ending with 
  500. X.I end
  501. Xare printed. If no start or end is given all moves are shown. If only 1 number is given it is assumed to be the start.
  502. X
  503. XTo use:
  504. X
  505. X.B     game gamefile >tmp
  506. X
  507. X.B    cat ChessFont tmp | lpr
  508. X
  509. X.SH "FUNCTION LETTERS"
  510. X.TP
  511. X.SH BUGS
  512. X.PP
  513. X.fi
  514. X.SH SEE ALSO
  515. X.nf
  516. Xgnuchess(6)
  517. Xchesstool(6)
  518. Xxboard(6)
  519. X.fi
  520. X
  521. END_OF_FILE
  522. if test 890 -ne `wc -c <'doc/game.1'`; then
  523.     echo shar: \"'doc/game.1'\" unpacked with wrong size!
  524. fi
  525. # end of 'doc/game.1'
  526. fi
  527. if test -f 'doc/gnuan.1' -a "${1}" != "-c" ; then 
  528.   echo shar: Will not clobber existing file \"'doc/gnuan.1'\"
  529. else
  530. echo shar: Extracting \"'doc/gnuan.1'\" \(504 characters\)
  531. sed "s/^X//" >'doc/gnuan.1' <<'END_OF_FILE'
  532. X.TH GNUAN GNUCHESS
  533. X.SH NAME
  534. Xgnuan
  535. X.SH SYNOPSIS
  536. X.B gnuan
  537. X.SH DESCRIPTION
  538. X.I gnuan
  539. Xproduces an analysis of a chess game.
  540. XFor each move it shows the move, the score and the principle variation selected
  541. Xby
  542. X.I gnuchess
  543. X
  544. X.I gnuan
  545. Xprompts for input parameters when it is invoked.
  546. XInput file is a
  547. X.I gnuchess
  548. Xlist file.
  549. X.I gnuan is a modification of the gnuan program from
  550. XTruman Collins (tcollins@pdx.mentor.com).
  551. X.SH "FUNCTION LETTERS"
  552. X.SH BUGS
  553. X.PP
  554. X.fi
  555. X.SH SEE ALSO
  556. X.nf
  557. Xgnuchess(6)
  558. Xchesstool(6)
  559. Xxboard(6)
  560. X.fi
  561. X
  562. END_OF_FILE
  563. if test 504 -ne `wc -c <'doc/gnuan.1'`; then
  564.     echo shar: \"'doc/gnuan.1'\" unpacked with wrong size!
  565. fi
  566. # end of 'doc/gnuan.1'
  567. fi
  568. if test -f 'misc/match' -a "${1}" != "-c" ; then 
  569.   echo shar: Will not clobber existing file \"'misc/match'\"
  570. else
  571. echo shar: Extracting \"'misc/match'\" \(861 characters\)
  572. sed "s/^X//" >'misc/match' <<'END_OF_FILE'
  573. X#!/bin/sh
  574. X#
  575. X# match -- play a series of games using xboard as a referee
  576. X#
  577. X
  578. Xcase $# in
  579. X8) COUNT=0; PGM1=$2 ; PGM2=$4 ; LENGTH=$6 ; MODE=$8 ;;
  580. X*) echo "Usage: match -pgm1 pgm -pgm2 pgm -length \
  581. Xgames -mode (Init | Position | Opening)" ; exit
  582. Xesac
  583. X
  584. Xwhile (:)
  585. Xdo
  586. X    if (test $COUNT -eq $LENGTH)
  587. X    then
  588. X        break
  589. X    else
  590. X        COUNT=`echo $COUNT | awk '{print $0 + 1}'`
  591. X        MODULO=`echo $COUNT | awk '{print $0 % 2}'`
  592. X        if (test $MODULO -eq 0)
  593. X        then
  594. X            xboard -fcp $PGM1 -scp $PGM2 \
  595. X                -matchMode $MODE -saveGameFile match.game.$COUNT \
  596. X                -savePositionFile match.position.$COUNT -iconic  
  597. X        else
  598. X            xboard -fcp $PGM2 -scp $PGM1 \
  599. X                -matchMode $MODE -saveGameFile match.game.$COUNT \
  600. X                -savePositionFile match.position.$COUNT -iconic  
  601. X        fi
  602. X    fi
  603. Xdone
  604. END_OF_FILE
  605. if test 861 -ne `wc -c <'misc/match'`; then
  606.     echo shar: \"'misc/match'\" unpacked with wrong size!
  607. fi
  608. chmod +x 'misc/match'
  609. # end of 'misc/match'
  610. fi
  611. if test -f 'src/CLp43.May31-114248B' -a "${1}" != "-c" ; then 
  612.   echo shar: Will not clobber existing file \"'src/CLp43.May31-114248B'\"
  613. else
  614. echo shar: Extracting \"'src/CLp43.May31-114248B'\" \(781 characters\)
  615. sed "s/^X//" >'src/CLp43.May31-114248B' <<'END_OF_FILE'
  616. Xgnuchess 4p43 game
  617. X       score  depth   nodes  time                score  depth   nodes  time
  618. X d2d4      0      0       0   300          d7d5    -19      0       0     0
  619. X e2e4      0      0       0   400          d5e4     50      5    9010  1200
  620. X b1c3      0      0       0   500          g8f6     58      5    7305   900
  621. X f2f3      0      0       0   700          e4f3     88      4    3325   400
  622. X d1f3      0      0       0   400          d8d4    181      4    5384   800
  623. X c1e3      0      0       0   200          d4h4    166      4    3875   700
  624. X g2g3      0      0       0   900          h4b4    141      4    4568   500
  625. X e1c1      0      0       0   300          b8c6     95      3    4043   400
  626. X c3b5      0      0       0  1000          b4a5    130      3    5257   400
  627. X
  628. X
  629. END_OF_FILE
  630. if test 781 -ne `wc -c <'src/CLp43.May31-114248B'`; then
  631.     echo shar: \"'src/CLp43.May31-114248B'\" unpacked with wrong size!
  632. fi
  633. # end of 'src/CLp43.May31-114248B'
  634. fi
  635. if test -f 'src/README' -a "${1}" != "-c" ; then 
  636.   echo shar: Will not clobber existing file \"'src/README'\"
  637. else
  638. echo shar: Extracting \"'src/README'\" \(344 characters\)
  639. sed "s/^X//" >'src/README' <<'END_OF_FILE'
  640. XThere is a problem with the gcc 2.00 pre processor and FIONREAD
  641. Xwill not compile properly on gcc 2.00. If you get an error
  642. Xmessage you may need to substitute a value for FIONREAD in
  643. XElapsedTime. The correct line for a SunsparcOS4 is included
  644. Xas a comment. cpp on 2.00 does not substitute in quotes,
  645. XsunOS cc and gcc 1.40 handle this correctly.
  646. END_OF_FILE
  647. if test 344 -ne `wc -c <'src/README'`; then
  648.     echo shar: \"'src/README'\" unpacked with wrong size!
  649. fi
  650. # end of 'src/README'
  651. fi
  652. if test -f 'src/ataks.c' -a "${1}" != "-c" ; then 
  653.   echo shar: Will not clobber existing file \"'src/ataks.c'\"
  654. else
  655. echo shar: Extracting \"'src/ataks.c'\" \(1913 characters\)
  656. sed "s/^X//" >'src/ataks.c' <<'END_OF_FILE'
  657. X/*
  658. X * ataks.c - C source for GNU CHESS
  659. X *
  660. X * Copyright (c) 1988,1989,1990 John Stanback
  661. X * Copyright (c) 1992 Free Software Foundation
  662. X *
  663. X * This file is part of GNU CHESS.
  664. X *
  665. X * GNU Chess is free software; you can redistribute it and/or modify
  666. X * it under the terms of the GNU General Public License as published by
  667. X * the Free Software Foundation; either version 2, or (at your option)
  668. X * any later version.
  669. X *
  670. X * GNU Chess is distributed in the hope that it will be useful,
  671. X * but WITHOUT ANY WARRANTY; without even the implied warranty of
  672. X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  673. X * GNU General Public License for more details.
  674. X *
  675. X * You should have received a copy of the GNU General Public License
  676. X * along with GNU Chess; see the file COPYING.  If not, write to
  677. X * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  678. X */
  679. X#include "gnuchess.h"
  680. Xvoid
  681. Xataks (short int side, short int *a)
  682. X
  683. X/*
  684. X * Fill array atak[][] with info about ataks to a square.  Bits 8-15 are set
  685. X * if the piece (king..pawn) ataks the square.  Bits 0-7 contain a count of
  686. X * total ataks to the square.
  687. X */
  688. X
  689. X{
  690. X  register short u, c, sq;
  691. X  register unsigned char *ppos, *pdir;
  692. X  short i, piece, *PL;
  693. X
  694. X#ifdef NOMEMSET
  695. X  for (u = 64; u; a[--u] = 0) ;
  696. X#else
  697. X  memset ((char *) a, 0, 64 * sizeof (a[0]));
  698. X#endif /* NOMEMSET */
  699. X  PL = PieceList[side];
  700. X  for (i = PieceCnt[side]; i >= 0; i--)
  701. X    {
  702. X      sq = PL[i];
  703. X      piece = board[sq];
  704. X      c = control[piece];
  705. X      if (sweep[piece])
  706. X    {
  707. X      ppos = nextpos[piece][sq];
  708. X      pdir = nextdir[piece][sq];
  709. X      u = ppos[sq];
  710. X      do
  711. X        {
  712. X          a[u] = (++a[u] | c);
  713. X          u = ((color[u] == neutral) ? ppos[u] : pdir[u]);
  714. X      } while (u != sq);
  715. X    }
  716. X      else
  717. X    {
  718. X      pdir = nextdir[ptype[side][piece]][sq];
  719. X      u = pdir[sq];        /* follow captures thread for pawns */
  720. X      do
  721. X        {
  722. X          a[u] = (++a[u] | c);
  723. X          u = pdir[u];
  724. X      } while (u != sq);
  725. X    }
  726. X    }
  727. X}
  728. END_OF_FILE
  729. if test 1913 -ne `wc -c <'src/ataks.c'`; then
  730.     echo shar: \"'src/ataks.c'\" unpacked with wrong size!
  731. fi
  732. # end of 'src/ataks.c'
  733. fi
  734. if test -f 'src/version.h' -a "${1}" != "-c" ; then 
  735.   echo shar: Will not clobber existing file \"'src/version.h'\"
  736. else
  737. echo shar: Extracting \"'src/version.h'\" \(134 characters\)
  738. sed "s/^X//" >'src/version.h' <<'END_OF_FILE'
  739. X/*
  740. X * This is GNU Chess.
  741. X * Copyright (c) 1986-1992 Free Software Foundation.
  742. X *
  743. X */
  744. Xchar *version = "4.00";
  745. Xchar *patchlevel = "44";
  746. END_OF_FILE
  747. if test 134 -ne `wc -c <'src/version.h'`; then
  748.     echo shar: \"'src/version.h'\" unpacked with wrong size!
  749. fi
  750. # end of 'src/version.h'
  751. fi
  752. if test -f 'test/test.inet' -a "${1}" != "-c" ; then 
  753.   echo shar: Will not clobber existing file \"'test/test.inet'\"
  754. else
  755. echo shar: Extracting \"'test/test.inet'\" \(506 characters\)
  756. sed "s/^X//" >'test/test.inet' <<'END_OF_FILE'
  757. XBlack computer White Human 1 # try a1h1 ... Bd4 ... b6b8 .... h1h7
  758. XCastled White false Black false
  759. XTimeControl 1 Operator Time 0
  760. XWhite Clock 540000 Moves 30
  761. XBlack Clock 540000 Moves 30
  762. X
  763. X8 ...R.... 10 10 10 10 10 10 10 10
  764. X7 ..R.PK.. 10 10 10 10 0 10 10 10
  765. X6 .rP..P.. 0 10 10 0 0 10 0 0
  766. X5 .Np..pP. 0 10 10 0 0 10 10 0
  767. X4 .p.p..p. 0 10 0 10 0 0 10 0
  768. X3 ......k. 0 0 0 0 0 0 10 0
  769. X2 .b...... 10 10 10 10 10 10 10 10
  770. X1 r....... 0 10 10 10 10 10 10 10
  771. X  abcdefgh
  772. X
  773. Xmove  score depth  nodes  time flags capture color
  774. END_OF_FILE
  775. if test 506 -ne `wc -c <'test/test.inet'`; then
  776.     echo shar: \"'test/test.inet'\" unpacked with wrong size!
  777. fi
  778. # end of 'test/test.inet'
  779. fi
  780. if test -f 'test/test1' -a "${1}" != "-c" ; then 
  781.   echo shar: Will not clobber existing file \"'test/test1'\"
  782. else
  783. echo shar: Extracting \"'test/test1'\" \(478 characters\)
  784. sed "s/^X//" >'test/test1' <<'END_OF_FILE'
  785. XBlack computer White Human 1 #correct move d4d5
  786. XCastled White false Black false
  787. XTimeControl 0 Operator Time 0
  788. XWhite Clock 0000 Moves 0
  789. XBlack Clock 0000 Moves 0
  790. X
  791. X8 ........ 10 10 10 10 10 10 10 10
  792. X7 ........ 10 10 10 10 10 10 10 10
  793. X6 ..PP...K 0 0 10 10 0 0 0 10
  794. X5 ........ 0 0 0 0 0 0 0 0
  795. X4 .p.p...k 0 10 0 10 0 0 0 10
  796. X3 ........ 0 0 0 0 0 0 0 0
  797. X2 ........ 10 10 10 10 10 10 10 10
  798. X1 ........ 10 10 10 10 10 10 10 10
  799. X  abcdefgh
  800. X
  801. Xmove  score depth  nodes  time flags capture color
  802. END_OF_FILE
  803. if test 478 -ne `wc -c <'test/test1'`; then
  804.     echo shar: \"'test/test1'\" unpacked with wrong size!
  805. fi
  806. # end of 'test/test1'
  807. fi
  808. if test -f 'test/test10' -a "${1}" != "-c" ; then 
  809.   echo shar: Will not clobber existing file \"'test/test10'\"
  810. else
  811. echo shar: Extracting \"'test/test10'\" \(491 characters\)
  812. sed "s/^X//" >'test/test10' <<'END_OF_FILE'
  813. XBlack computer White Human 1 # correct f3f4 Cray Blitz at 17 plys
  814. XCastled White false Black false # 
  815. XTimeControl 0 Operator Time 0
  816. XWhite Clock 0 Moves 0
  817. XBlack Clock 0 Moves 0
  818. X
  819. X8 ........ 10 10 10 10 10 10 10 10
  820. X7 ........ 10 10 10 10 10 10 10 10
  821. X6 P......P 0 0 0 10 10 10 0 0
  822. X5 .P...KP. 0 0 0 0 0 0 0 0
  823. X4 .p...... 0 0 0 0 0 0 0 0
  824. X3 p....pkp 0 0 0 10 10 0 0 0
  825. X2 .....p.. 10 10 10 10 10 0 10 10
  826. X1 ........ 10 10 10 10 10 10 10 10
  827. X  abcdefgh
  828. X
  829. Xmove  score depth  nodes  time flags capture color
  830. END_OF_FILE
  831. if test 491 -ne `wc -c <'test/test10'`; then
  832.     echo shar: \"'test/test10'\" unpacked with wrong size!
  833. fi
  834. # end of 'test/test10'
  835. fi
  836. if test -f 'test/test11' -a "${1}" != "-c" ; then 
  837.   echo shar: Will not clobber existing file \"'test/test11'\"
  838. else
  839. echo shar: Extracting \"'test/test11'\" \(475 characters\)
  840. sed "s/^X//" >'test/test11' <<'END_OF_FILE'
  841. XBlack computer White Human 1 # correct c5d5  easy
  842. XCastled White false Black false # 
  843. XTimeControl 0 Operator Time 0
  844. XWhite Clock 0 Moves 0
  845. XBlack Clock 0 Moves 0
  846. X
  847. X8 ........ 10 10 10 10 10 10 10 10
  848. X7 ..K..... 10 10 10 10 10 10 10 10
  849. X6 P.p..... 0 0 0 10 10 10 0 0
  850. X5 p.k..... 0 0 0 0 0 0 0 0
  851. X4 ........ 0 0 0 0 0 0 0 0
  852. X3 ........ 0 0 0 10 10 0 0 0
  853. X2 ........ 10 10 10 10 10 0 10 10
  854. X1 ........ 10 10 10 10 10 10 10 10
  855. X  abcdefgh
  856. X
  857. Xmove  score depth  nodes  time flags capture color
  858. END_OF_FILE
  859. if test 475 -ne `wc -c <'test/test11'`; then
  860.     echo shar: \"'test/test11'\" unpacked with wrong size!
  861. fi
  862. # end of 'test/test11'
  863. fi
  864. if test -f 'test/test13' -a "${1}" != "-c" ; then 
  865.   echo shar: Will not clobber existing file \"'test/test13'\"
  866. else
  867. echo shar: Extracting \"'test/test13'\" \(510 characters\)
  868. sed "s/^X//" >'test/test13' <<'END_OF_FILE'
  869. XBlack computer White Human 1 # correct e3e4 Cray Blitz at 13 plys
  870. XCastled White false Black false # sees it wins a pawn
  871. XTimeControl 0 Operator Time 0
  872. XWhite Clock 0 Moves 0
  873. XBlack Clock 0 Moves 0
  874. X
  875. X8 ........ 10 10 10 10 10 10 10 10
  876. X7 .......P 10 10 10 10 10 10 10 10
  877. X6 ..K.pP.. 0 0 0 10 10 10 0 0
  878. X5 PP.P..P. 0 0 0 0 0 0 0 0
  879. X4 ...p..p. 0 0 0 0 0 0 0 0
  880. X3 ....p... 0 0 0 10 10 0 0 0
  881. X2 p...k..p 10 10 10 10 10 0 10 10
  882. X1 ........ 10 10 10 10 10 10 10 10
  883. X  abcdefgh
  884. X
  885. Xmove  score depth  nodes  time flags capture color
  886. END_OF_FILE
  887. if test 510 -ne `wc -c <'test/test13'`; then
  888.     echo shar: \"'test/test13'\" unpacked with wrong size!
  889. fi
  890. # end of 'test/test13'
  891. fi
  892. if test -f 'test/test14' -a "${1}" != "-c" ; then 
  893.   echo shar: Will not clobber existing file \"'test/test14'\"
  894. else
  895. echo shar: Extracting \"'test/test14'\" \(510 characters\)
  896. sed "s/^X//" >'test/test14' <<'END_OF_FILE'
  897. XBlack computer White Human 1 # correct e2f2 Cray Blitz at 18 plys
  898. XCastled White false Black false # sees it wins a pawn
  899. XTimeControl 0 Operator Time 0
  900. XWhite Clock 0 Moves 0
  901. XBlack Clock 0 Moves 0
  902. X
  903. X8 ........ 10 10 10 10 10 10 10 10
  904. X7 ......P. 10 10 10 10 10 10 10 10
  905. X6 ...K.P.. 0 0 0 10 10 10 0 0
  906. X5 ..P..pP. 0 0 0 0 0 0 0 0
  907. X4 ..p.P.p. 0 0 0 0 0 0 0 0
  908. X3 .p....p. 0 0 0 10 10 0 0 0
  909. X2 ....k... 10 10 10 10 10 0 10 10
  910. X1 ........ 10 10 10 10 10 10 10 10
  911. X  abcdefgh
  912. X
  913. Xmove  score depth  nodes  time flags capture color
  914. END_OF_FILE
  915. if test 510 -ne `wc -c <'test/test14'`; then
  916.     echo shar: \"'test/test14'\" unpacked with wrong size!
  917. fi
  918. # end of 'test/test14'
  919. fi
  920. if test -f 'test/test15' -a "${1}" != "-c" ; then 
  921.   echo shar: Will not clobber existing file \"'test/test15'\"
  922. else
  923. echo shar: Extracting \"'test/test15'\" \(517 characters\)
  924. sed "s/^X//" >'test/test15' <<'END_OF_FILE'
  925. XBlack computer White Human 1 # correct e5f4 Cray Blitz at 17 plys
  926. XCastled White false Black false #PEASENT sees it at 11 plys 
  927. XTimeControl 0 Operator Time 0
  928. XWhite Clock 0 Moves 0
  929. XBlack Clock 0 Moves 0
  930. X
  931. X8 ....K... 10 10 10 10 10 10 10 10
  932. X7 ....pP.. 10 10 10 10 10 10 10 10
  933. X6 .....p.. 0 0 0 10 10 10 0 0
  934. X5 ....k... 0 0 0 0 0 0 0 0
  935. X4 ........ 0 0 0 0 0 0 0 0
  936. X3 ........ 0 0 0 10 10 0 0 0
  937. X2 ........ 10 10 10 10 10 0 10 10
  938. X1 ........ 10 10 10 10 10 10 10 10
  939. X  abcdefgh
  940. X
  941. Xmove  score depth  nodes  time flags capture color
  942. END_OF_FILE
  943. if test 517 -ne `wc -c <'test/test15'`; then
  944.     echo shar: \"'test/test15'\" unpacked with wrong size!
  945. fi
  946. # end of 'test/test15'
  947. fi
  948. if test -f 'test/test16' -a "${1}" != "-c" ; then 
  949.   echo shar: Will not clobber existing file \"'test/test16'\"
  950. else
  951. echo shar: Extracting \"'test/test16'\" \(503 characters\)
  952. sed "s/^X//" >'test/test16' <<'END_OF_FILE'
  953. XBlack computer White Human 1 # correct d5d6 Cray Blitz at 15 plys
  954. XCastled White false Black false # wins 3 pawns
  955. XTimeControl 0 Operator Time 0
  956. XWhite Clock 0 Moves 0
  957. XBlack Clock 0 Moves 0
  958. X
  959. X8 ........ 10 10 10 10 10 10 10 10
  960. X7 .K...PPP 10 10 10 10 10 10 10 10
  961. X6 ........ 0 0 0 10 10 10 0 0
  962. X5 ...k.... 0 0 0 0 0 0 0 0
  963. X4 .......p 0 0 0 0 0 0 0 0
  964. X3 .....pp. 0 0 0 10 10 0 0 0
  965. X2 ........ 10 10 10 10 10 0 10 10
  966. X1 ........ 10 10 10 10 10 10 10 10
  967. X  abcdefgh
  968. X
  969. Xmove  score depth  nodes  time flags capture color
  970. END_OF_FILE
  971. if test 503 -ne `wc -c <'test/test16'`; then
  972.     echo shar: \"'test/test16'\" unpacked with wrong size!
  973. fi
  974. # end of 'test/test16'
  975. fi
  976. if test -f 'test/test2' -a "${1}" != "-c" ; then 
  977.   echo shar: Will not clobber existing file \"'test/test2'\"
  978. else
  979. echo shar: Extracting \"'test/test2'\" \(511 characters\)
  980. sed "s/^X//" >'test/test2' <<'END_OF_FILE'
  981. XBlack computer White Human 1 #correct move b5b6 Peasent 8 plys Cray Blitz 14 plys
  982. XCastled White false Black false
  983. XTimeControl 0 Operator Time 50
  984. XWhite Clock 0000 Moves 0
  985. XBlack Clock 0000 Moves 0
  986. X
  987. X8 ........ 10 10 10 10 10 10 10 10
  988. X7 PPP..... 0 0 0 10 10 10 10 10
  989. X6 ........ 0 0 0 0 0 0 0 0
  990. X5 ppp...KP 10 10 10 0 0 0 10 10
  991. X4 ........ 0 0 0 0 0 0 0 0
  992. X3 ......kp 0 0 0 0 0 0 10 10
  993. X2 ........ 10 10 10 10 10 10 10 10
  994. X1 ........ 10 10 10 10 10 10 10 10
  995. X  abcdefgh
  996. X
  997. Xmove  score depth  nodes  time flags capture color
  998. END_OF_FILE
  999. if test 511 -ne `wc -c <'test/test2'`; then
  1000.     echo shar: \"'test/test2'\" unpacked with wrong size!
  1001. fi
  1002. # end of 'test/test2'
  1003. fi
  1004. if test -f 'test/test3' -a "${1}" != "-c" ; then 
  1005.   echo shar: Will not clobber existing file \"'test/test3'\"
  1006. else
  1007. echo shar: Extracting \"'test/test3'\" \(495 characters\)
  1008. sed "s/^X//" >'test/test3' <<'END_OF_FILE'
  1009. XBlack computer White Human 1 # correct move g3g4 at 13 plys +500
  1010. XCastled White false Black false
  1011. XTimeControl 0 Operator Time 0
  1012. XWhite Clock 0 Moves 0
  1013. XBlack Clock 0 Moves 0
  1014. X
  1015. X8 ........ 10 10 10 10 10 10 10 10
  1016. X7 P....... 0 10 10 10 10 10 10 10
  1017. X6 .P.K.P.. 0 10 0 10 0 10 0 0
  1018. X5 .p..PP.P 0 10 0 0 10 10 0 10
  1019. X4 .p.p...p 0 10 0 10 0 0 0 10
  1020. X3 ....kpp. 0 0 0 0 10 10 10 0
  1021. X2 ........ 10 10 10 10 10 10 10 10
  1022. X1 ........ 10 10 10 10 10 10 10 10
  1023. X  abcdefgh
  1024. X
  1025. Xmove  score depth  nodes  time flags capture color
  1026. END_OF_FILE
  1027. if test 495 -ne `wc -c <'test/test3'`; then
  1028.     echo shar: \"'test/test3'\" unpacked with wrong size!
  1029. fi
  1030. # end of 'test/test3'
  1031. fi
  1032. if test -f 'test/test4' -a "${1}" != "-c" ; then 
  1033.   echo shar: Will not clobber existing file \"'test/test4'\"
  1034. else
  1035. echo shar: Extracting \"'test/test4'\" \(476 characters\)
  1036. sed "s/^X//" >'test/test4' <<'END_OF_FILE'
  1037. XBlack computer White Human 1 #correct c4c5 cray 11 plys
  1038. XCastled White false Black false
  1039. XTimeControl 0 Operator Time 0
  1040. XWhite Clock 0 Moves 0
  1041. XBlack Clock 0 Moves 0
  1042. X
  1043. X8 ........ 10 10 10 10 10 10 10 10
  1044. X7 PP.....P 0 0 10 10 10 10 10 0
  1045. X6 ........ 0 0 0 0 0 0 0 0
  1046. X5 pp..K... 10 10 0 0 10 0 0 0
  1047. X4 ..p..PP. 0 0 10 0 0 10 10 0
  1048. X3 ...k.... 0 0 0 10 0 0 0 0
  1049. X2 ......pp 10 10 10 10 10 10 0 0
  1050. X1 ........ 10 10 10 10 10 10 10 10
  1051. X  abcdefgh
  1052. X
  1053. Xmove  score depth  nodes  time flags capture color
  1054. END_OF_FILE
  1055. if test 476 -ne `wc -c <'test/test4'`; then
  1056.     echo shar: \"'test/test4'\" unpacked with wrong size!
  1057. fi
  1058. # end of 'test/test4'
  1059. fi
  1060. if test -f 'test/test5' -a "${1}" != "-c" ; then 
  1061.   echo shar: Will not clobber existing file \"'test/test5'\"
  1062. else
  1063. echo shar: Extracting \"'test/test5'\" \(473 characters\)
  1064. sed "s/^X//" >'test/test5' <<'END_OF_FILE'
  1065. XBlack computer White Human 1 # correct h6h5 mate in 19
  1066. XCastled White false Black false
  1067. XTimeControl 0 Operator Time 0
  1068. XWhite Clock 0 Moves 0
  1069. XBlack Clock 0 Moves 0
  1070. X
  1071. X8 ......K. 10 10 10 10 10 10 10 10
  1072. X7 .......P 10 10 10 10 10 10 10 0
  1073. X6 .....p.k 0 0 0 0 0 10 0 10
  1074. X5 ........ 0 0 0 0 0 0 0 0
  1075. X4 ........ 0 0 0 0 0 0 0 0
  1076. X3 ........ 0 0 0 0 0 0 0 0
  1077. X2 .......p 10 10 10 10 10 10 10 0
  1078. X1 ........ 10 10 10 10 10 10 10 10
  1079. X  abcdefgh
  1080. X
  1081. Xmove  score depth  nodes  time flags capture color
  1082. END_OF_FILE
  1083. if test 473 -ne `wc -c <'test/test5'`; then
  1084.     echo shar: \"'test/test5'\" unpacked with wrong size!
  1085. fi
  1086. # end of 'test/test5'
  1087. fi
  1088. if test -f 'test/test6' -a "${1}" != "-c" ; then 
  1089.   echo shar: Will not clobber existing file \"'test/test6'\"
  1090. else
  1091. echo shar: Extracting \"'test/test6'\" \(482 characters\)
  1092. sed "s/^X//" >'test/test6' <<'END_OF_FILE'
  1093. XBlack computer White Human 1 # correct e3e4 cray at 21 plys
  1094. XCastled White false Black false
  1095. XTimeControl 0 Operator Time 0
  1096. XWhite Clock 0 Moves 0
  1097. XBlack Clock 0 Moves 0
  1098. X
  1099. X8 ........ 10 10 10 10 10 10 10 10
  1100. X7 ........ 10 10 10 10 10 10 10 10
  1101. X6 ...PKP.. 0 0 0 10 10 10 0 0
  1102. X5 ........ 0 0 0 0 0 0 0 0
  1103. X4 ........ 0 0 0 0 0 0 0 0
  1104. X3 ...pk... 0 0 0 10 10 0 0 0
  1105. X2 .....p.. 10 10 10 10 10 0 10 10
  1106. X1 ........ 10 10 10 10 10 10 10 10
  1107. X  abcdefgh
  1108. X
  1109. Xmove  score depth  nodes  time flags capture color
  1110. END_OF_FILE
  1111. if test 482 -ne `wc -c <'test/test6'`; then
  1112.     echo shar: \"'test/test6'\" unpacked with wrong size!
  1113. fi
  1114. # end of 'test/test6'
  1115. fi
  1116. if test -f 'test/test7' -a "${1}" != "-c" ; then 
  1117.   echo shar: Will not clobber existing file \"'test/test7'\"
  1118. else
  1119. echo shar: Extracting \"'test/test7'\" \(488 characters\)
  1120. sed "s/^X//" >'test/test7' <<'END_OF_FILE'
  1121. XBlack computer White Human 1 # correct d4d5 Cray Blitz at 19 plys
  1122. XCastled White false Black false
  1123. XTimeControl 0 Operator Time 0
  1124. XWhite Clock 0 Moves 0
  1125. XBlack Clock 0 Moves 0
  1126. X
  1127. X8 ........ 10 10 10 10 10 10 10 10
  1128. X7 ........ 10 10 10 10 10 10 10 10
  1129. X6 ..PPK... 0 0 0 10 10 10 0 0
  1130. X5 ........ 0 0 0 0 0 0 0 0
  1131. X4 ..ppk... 0 0 0 0 0 0 0 0
  1132. X3 ..p..... 0 0 0 10 10 0 0 0
  1133. X2 ........ 10 10 10 10 10 0 10 10
  1134. X1 ........ 10 10 10 10 10 10 10 10
  1135. X  abcdefgh
  1136. X
  1137. Xmove  score depth  nodes  time flags capture color
  1138. END_OF_FILE
  1139. if test 488 -ne `wc -c <'test/test7'`; then
  1140.     echo shar: \"'test/test7'\" unpacked with wrong size!
  1141. fi
  1142. # end of 'test/test7'
  1143. fi
  1144. if test -f 'test/test8' -a "${1}" != "-c" ; then 
  1145.   echo shar: Will not clobber existing file \"'test/test8'\"
  1146. else
  1147. echo shar: Extracting \"'test/test8'\" \(507 characters\)
  1148. sed "s/^X//" >'test/test8' <<'END_OF_FILE'
  1149. XBlack computer White Human 1 # correct b3b4 Cray Blitz at 18 plys
  1150. XCastled White false Black false # sees only a draw
  1151. XTimeControl 0 Operator Time 0
  1152. XWhite Clock 0 Moves 0
  1153. XBlack Clock 0 Moves 0
  1154. X
  1155. X8 ........ 10 10 10 10 10 10 10 10
  1156. X7 ..P..... 10 10 10 10 10 10 10 10
  1157. X6 ...K.... 0 0 0 10 10 10 0 0
  1158. X5 .P.P.k.. 0 0 0 0 0 0 0 0
  1159. X4 ........ 0 0 0 0 0 0 0 0
  1160. X3 .p.p.... 0 0 0 10 10 0 0 0
  1161. X2 ..p..... 10 10 10 10 10 0 10 10
  1162. X1 ........ 10 10 10 10 10 10 10 10
  1163. X  abcdefgh
  1164. X
  1165. Xmove  score depth  nodes  time flags capture color
  1166. END_OF_FILE
  1167. if test 507 -ne `wc -c <'test/test8'`; then
  1168.     echo shar: \"'test/test8'\" unpacked with wrong size!
  1169. fi
  1170. # end of 'test/test8'
  1171. fi
  1172. if test -f 'test/test9' -a "${1}" != "-c" ; then 
  1173.   echo shar: Will not clobber existing file \"'test/test9'\"
  1174. else
  1175. echo shar: Extracting \"'test/test9'\" \(503 characters\)
  1176. sed "s/^X//" >'test/test9' <<'END_OF_FILE'
  1177. XBlack computer White Human 1 # correct a1b1 Cray Blitz at 18 plys
  1178. XCastled White false Black false # sees the win
  1179. XTimeControl 0 Operator Time 0
  1180. XWhite Clock 0 Moves 0
  1181. XBlack Clock 0 Moves 0
  1182. X
  1183. X8 ........ 10 10 10 10 10 10 10 10
  1184. X7 K....... 10 10 10 10 10 10 10 10
  1185. X6 ...P.... 0 0 0 10 10 10 0 0
  1186. X5 P..p.P.. 0 0 0 0 0 0 0 0
  1187. X4 p..p.p.. 0 0 0 0 0 0 0 0
  1188. X3 ........ 0 0 0 10 10 0 0 0
  1189. X2 ........ 10 10 10 10 10 0 10 10
  1190. X1 k....... 10 10 10 10 10 10 10 10
  1191. X  abcdefgh
  1192. X
  1193. Xmove  score depth  nodes  time flags capture color
  1194. END_OF_FILE
  1195. if test 503 -ne `wc -c <'test/test9'`; then
  1196.     echo shar: \"'test/test9'\" unpacked with wrong size!
  1197. fi
  1198. # end of 'test/test9'
  1199. fi
  1200. if test -f 'test/testm' -a "${1}" != "-c" ; then 
  1201.   echo shar: Will not clobber existing file \"'test/testm'\"
  1202. else
  1203. echo shar: Extracting \"'test/testm'\" \(478 characters\)
  1204. sed "s/^X//" >'test/testm' <<'END_OF_FILE'
  1205. XBlack computer White Human 1 #correct move d4d5
  1206. XCastled White false Black false
  1207. XTimeControl 0 Operator Time 0
  1208. XWhite Clock 0000 Moves 0
  1209. XBlack Clock 0000 Moves 0
  1210. X
  1211. X8 ........ 10 10 10 10 10 10 10 10
  1212. X7 ........ 10 10 10 10 10 10 10 10
  1213. X6 ..PP...K 0 0 10 10 0 0 0 10
  1214. X5 ........ 0 0 0 0 0 0 0 0
  1215. X4 .p.p...k 0 10 0 10 0 0 0 10
  1216. X3 ........ 0 0 0 0 0 0 0 0
  1217. X2 ........ 10 10 10 10 10 10 10 10
  1218. X1 ........ 10 10 10 10 10 10 10 10
  1219. X  abcdefgh
  1220. X
  1221. Xmove  score depth  nodes  time flags capture color
  1222. END_OF_FILE
  1223. if test 478 -ne `wc -c <'test/testm'`; then
  1224.     echo shar: \"'test/testm'\" unpacked with wrong size!
  1225. fi
  1226. # end of 'test/testm'
  1227. fi
  1228. echo shar: End of archive 12 \(of 12\).
  1229. cp /dev/null ark12isdone
  1230. MISSING=""
  1231. for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
  1232.     if test ! -f ark${I}isdone ; then
  1233.     MISSING="${MISSING} ${I}"
  1234.     fi
  1235. done
  1236. if test "${MISSING}" = "" ; then
  1237.     echo You have unpacked all 12 archives.
  1238.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1239.     echo Building book file.
  1240.     cat misc/book.xaa misc/book.xab > misc/gnuchess.nunn.book
  1241.     rm misc/book.xaa misc/book.xab
  1242. else
  1243.     echo You still need to unpack the following archives:
  1244.     echo "        " ${MISSING}
  1245. fi
  1246. ##  End of shell archive.
  1247. exit 0
  1248.