home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!master!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v13i100: gnuchess4 - GNU Chess 4.0, Part12/12
- Message-ID: <3067@master.CNA.TEK.COM>
- Date: 19 Jun 92 15:55:44 GMT
- Sender: news@master.CNA.TEK.COM
- Lines: 1238
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: cracraft@rice-chex.ai.mit.edu (Stuart Cracraft)
- Posting-number: Volume 13, Issue 100
- Archive-name: gnuchess4/Part12
- Supersedes: gnuchess2: Volume 4, Issue 37-40
- Environment:
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 12 (of 12)."
- # Contents: WARNING doc/ARTICLE doc/GENERAL doc/HEURISTICS doc/INSTALL
- # doc/checkbook.1 doc/game.1 doc/gnuan.1 misc/match
- # src/CLp43.May31-114248B src/README src/ataks.c src/version.h
- # test/test.inet test/test1 test/test10 test/test11 test/test13
- # test/test14 test/test15 test/test16 test/test2 test/test3
- # test/test4 test/test5 test/test6 test/test7 test/test8 test/test9
- # test/testm
- # Wrapped by billr@saab on Fri Jun 19 08:36:03 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'WARNING' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'WARNING'\"
- else
- echo shar: Extracting \"'WARNING'\" \(344 characters\)
- sed "s/^X//" >'WARNING' <<'END_OF_FILE'
- XThere is a problem with the gcc 2.00 pre processor and FIONREAD
- Xwill not compile properly on gcc 2.00. If you get an error
- Xmessage you may need to substitute a value for FIONREAD in
- XElapsedTime. The correct line for a SunsparcOS4 is included
- Xas a comment. cpp on 2.00 does not substitute in quotes,
- XsunOS cc and gcc 1.40 handle this correctly.
- END_OF_FILE
- if test 344 -ne `wc -c <'WARNING'`; then
- echo shar: \"'WARNING'\" unpacked with wrong size!
- fi
- # end of 'WARNING'
- fi
- if test -f 'doc/ARTICLE' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/ARTICLE'\"
- else
- echo shar: Extracting \"'doc/ARTICLE'\" \(3475 characters\)
- sed "s/^X//" >'doc/ARTICLE' <<'END_OF_FILE'
- X
- X GNU Chess
- X by Stuart Cracraft
- X copyright 1987,1988,1989,1990 Stuart Cracraft
- X
- X
- X GNU Chess is a communal chess program. Contributors donate their
- Xtime and effort in order to make it a stronger, better, sleeker program.
- XContributions take many forms: interfaces to high-resolution displays,
- Xopening book treatises, speedups of the underlying algorithms, additions
- Xof extra heuristics. These contributions are then distributed to the
- Xlarge user-base so that all may enjoy the fruits of our labor. The
- Xoriginal and continuing purpose of this project is to permanently end
- Xthe rampant hoarding of computer chess software that has been the
- Xcase for the past 20 years.
- X
- X Many people have contributed to GNU Chess. Their contributions have
- Ximproved the program from being a patzer (weak program) to being a
- Xgrandpatzer (decently strong program). In its growth since initial
- Xrelease, GNU Chess has gone from approximately class D to strong
- Xmaster strength. It beats the Fidelity Mach 3 (USCF 2265) rather
- Xhandily when run on a Sparc-1 (RISC). Since these types of RISC
- Xchips are becoming fairly common, the age of "master chess
- Xin your computer lab" is now a reality. From there, it will be a
- Xshort hop to master chess in your home with FSF software.
- X
- X GNU Chess's structure is a hybrid of the Shannon Type-A and
- XType-B methods. It conducts a full-width search to a fixed-depth
- Xand then continues with a quiescence search for many more ply.
- XThis quiescence search helps the program find positions which
- Xcan be safely evaluated and which are not too turbulent. If
- Xa terminal position is too turbulent, the evaluation will be
- Xhighly inaccurate. Additional searching by investigating series
- Xof captures, checks, and other potentially imbalance-producing
- Xmoves is quite helpful.
- X
- X GNU Chess will sacrifice pieces in order to reach known winning
- Xendings. Also, it uses a trade-down bonus to encourage the stronger
- Xside to trade off certain types of pieces thus reaching a more
- Xsimplified and therefore ostensibly "clearer" position.
- X
- X GNU Chess has certain types of knowledge regarding easier endgames.
- XThis allows it to play these endings somewhat better than might be
- Xexpected.
- X
- X GNU Chess has time heuristics that it uses to improve its handling
- Xof time-controls and hasten its making of "obvious" moves. It also
- Xthinks on the opponent's time.
- X
- X GNU Chess is interfaced to the SUN Windows and X Windows
- Xdisplay protocols and can display its pieces in elaborate format,
- Xsimilar to chess diagrams.
- X
- X GNU Chess has an opening book which consists of many variations
- Xfrom MCO (Modern Chess Openings), and some from ECO.
- X
- X For comparison purposes, GNU Chess running on a VAX 8650 is
- Xstronger than the famous Chess 4.5 running on a CDC 6400. On
- Xa Sparc-1, GNU 1.55 (or later) is probably about 2350-2400
- Xstrength (USCF rating estimated).
- X
- X We wish to acknowledge the contributions of the following
- Xindividuals: (in alphabetical order) Jim Aspnes, Wayne Christopher,
- XSteve Dougherty, David Goldberg, Richard Greenblatt, Larry
- XKaufman, David Kittinger, Hans-Erik Sandstrom, Richard Stallman,
- XJohn Stanback, Ken Thompson.
- X
- X Contact information: The author may be reached by a variety of
- Xmethods. Via U.S. mail: Stuart Cracraft, P.O. Box 2841, Laguna
- XHills, Ca. 92654-2841. Via Email: cracraft@wheaties.ai.mit.edu
- XThe author may also be contacted via the Free Software Foundation, Inc.
- X675 Massachusetts Ave.,Cambridge MA 02139.
- END_OF_FILE
- if test 3475 -ne `wc -c <'doc/ARTICLE'`; then
- echo shar: \"'doc/ARTICLE'\" unpacked with wrong size!
- fi
- # end of 'doc/ARTICLE'
- fi
- if test -f 'doc/GENERAL' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/GENERAL'\"
- else
- echo shar: Extracting \"'doc/GENERAL'\" \(2286 characters\)
- sed "s/^X//" >'doc/GENERAL' <<'END_OF_FILE'
- X GNU Chess
- X
- XCopyright (C) 1987 Stuart Cracraft
- X (Copying permission notice at the end.)
- X
- XGNU Chess is your program (as long as you follow the copyright and
- Xlicensing rules listed in the file COPYING). Your contributioinspire current and future software
- Xdevelopers.
- X
- XThis document
- X-------------
- XThis document is not meant to be a an introduction to computer chess.
- XThe following books are excellent introductions and treatises.
- XThey are listed in order of difficulty:
- X
- X Computer Chess (2nd edition), by David Welsh and Boris Bazcynski
- X The Joy of Computer Chess, by David Levy
- X Chess Skill in Man and Machine (2nd edition), by Peter Frey
- X How Computers Play Chess, by David Levy
- X
- X
- XCurrent Distribution
- X--------------------
- XThe most recent distribution of GNU Chess contains the following
- Xmain-level files and directories:
- X
- X Filename Purpose
- X ------------------------------------------------------
- Xdoc:
- X
- XARTICLE ---------- general gnuchess documentation ---------
- XARTICLE.2
- XCHANGES
- XCOPYING
- XGENERAL
- XHEURISTICS
- XMOVE-GEN
- XPORTING
- X
- XChangeLog ----------- specific gnuchess documentation ----------
- XREADME
- XREADME.font - ChessFont copyright info
- XREADME.output - how to read gnuchess output
- X
- Xcheckbook.1 ---------- man pages -----------
- Xcheckgame.1
- Xgame.1
- Xgnuan.1
- Xgnuan.hlp
- Xpostprint.1
- Xgnuchess.1
- X
- Xmisc:
- XChessFont - ChessFont for use with game and postprint
- Xmatch* - script to play a match with xboard
- Xgnuchess2.book - opening book
- X
- Xsrc:
- XMakefile - unix makefile
- XMakefile.dos - MSDOS makefile not updated, needs a dos fan
- X
- Xataks.c - sources for the chess playing program
- Xataks.h
- Xbook.c
- Xdspcom.c
- Xeval.c
- Xgenmoves.c
- Xinit.c
- Xmain.c
- Xgnuchess.h
- Xsearch.c
- Xutil.c
- Xversion.h
- X
- Xnondsp.c - ASCII interface for acsii terminal/ chesstool/ xboard
- Xnuxdsp.c - IBM PC graphics character set based user interface.
- Xuxdsp.c - curses based user interface
- X
- Xpostprint.c - source for postprint
- Xcheckbook.c - source for checkbook
- Xcheckgame.c - source for checkgame
- Xgnuan.c - source for main analysis module.
- Xgame.c - source for game.
- X
- Xtest: directory containing 16 test positions from Levy book.
- X each file also shows correct move.
- X
- XRESULTS.p11 - results from test cases on a sparc 2.
- Xtest1
- Xtest10
- Xtest11
- Xtest12
- Xtest13
- Xtest14
- Xtest15
- Xtest16
- Xtest2
- Xtest3
- Xtest4
- Xtest5
- Xtest6
- Xtest7
- Xtest8
- Xtest9
- END_OF_FILE
- if test 2286 -ne `wc -c <'doc/GENERAL'`; then
- echo shar: \"'doc/GENERAL'\" unpacked with wrong size!
- fi
- # end of 'doc/GENERAL'
- fi
- if test -f 'doc/HEURISTICS' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/HEURISTICS'\"
- else
- echo shar: Extracting \"'doc/HEURISTICS'\" \(6524 characters\)
- sed "s/^X//" >'doc/HEURISTICS' <<'END_OF_FILE'
- XThis file contains a description of GNU's heuristics.
- X Copyright (C) 1986, 1987 Free Software Foundation, Inc.
- X
- XThis file is part of CHESS.
- X
- XCHESS is distributed in the hope that it will be useful,
- Xbut WITHOUT ANY WARRANTY. No author or distributor
- Xaccepts responsibility to anyone for the consequences of using it
- Xor for whether it serves any particular purpose or works at all,
- Xunless he says so in writing. Refer to the CHESS General Public
- XLicense for full details.
- X
- XEveryone is granted permission to copy, modify and redistribute
- XCHESS, but only under the conditions described in the
- XCHESS General Public License. A copy of this license is
- Xsupposed to have been given to you along with CHESS so you
- Xcan know your rights and responsibilities. It should be in a
- Xfile named COPYING. Among other things, the copyright notice
- Xand this notice must be preserved on all copies. */
- X
- X -- requested by main author
- XHeuristic descriptions for CHESS.
- X
- XRevision: 12-16-87
- X
- XCopyright (c) 1987 by John Stanback
- XModified 1991 by Mike McGann
- X
- XTiming:
- X
- X An initial quantum of time = Time Remaining/(2 * moves remaining +1)
- X is alocated to the search. After this time is used up a check is made
- X if the score has changed more than ZSCORE points between the last
- X two search levels or if at least ZDEPTH has not been reached or if
- X the choosen move has changed between the last two search levels
- X the time is doubled.
- X
- XEvaluation:
- X
- X Here is a brief description of the heuristics used in the positional
- X evaluator of the GNU Chess program. Many heuristics are functions of the
- X stage of the game which is based on the total non-pawn material remaining
- X for both sides.
- X
- X
- XPAWNS
- X The material value of a pawn is 100 points. Isolated pawns get a
- X penalty depending on which file they occupy:
- X (12,14,16,20,20,16,14,12) for files (a..h).
- X Doubled pawns (which are not also isolated) get a penalty of 12
- X points. Backward pawns (defined simply as not being defended by a
- X pawn with the square in front also not defended by a a pawn) are
- X penalized 6 points. A 4 point penalty is also invoked for each attack
- X by the opponent to a backward pawn and for a backward pawn on a
- X half-open file. Pawn Advancement in the centre is given a bonus of
- X about 4 points per rank in the opening increasing to about 8 points
- X per rank in the ending. Advancement on the edges is given a lower
- X bonus. Pawns on the e and d files and on the 2nd rank are given a 10
- X point penalty. An additional penalty of 15 points is invoked if these
- X pawns are also blocked. Pawns within 2 squares of the king are given
- X a 10 point bonus. Passed pawns are given a bonus for increasing rank
- X which is a function of stage of the game and of whether the opponent
- X blocks or attacks one or more squares in front of the pawn or if the
- X opponents king is in the square of the pawn. This bonus ranges from
- X about 15 points for a pawn on the second rank up to about 300 points
- X for a passed pawn on the 7th rank which can't be stopped from
- X queening.
- X
- X
- XKNIGHTS
- X The material value of a knight is 330 points. The main heuristic for
- X knights is a bonus for proximity to the centre. This varies from 0
- X points in the corners to 30 points in the centre. Knights are also
- X given a bonus for being within 2 squares of each enemy piece. This
- X bonus is a function of the stage of the game, equalling 4 points in
- X the end game. A penalty of 1 point per square is given for distance
- X from either king. A bonus of up to 8 points (depends on stage) is
- X given for knights which can't be driven away by enemy pawns.
- X
- X
- XBISHOPS
- X The material value of a bishop is 330 points. Bishops are given a
- X bonus as material falls off the board equalling 10 points in the end
- X game. Bishops get a bonus for mobility and Xray mobility thru pieces
- X but not pawns. This bonus ranges from -4 points for a totally blocked
- X bishop up to 18 points for a bishop attacking 12 or more squares.
- X Xray attacks on an enemy R,Q,K or any undefended piece are given an 8
- X point bonus. Bishops are given a bonus of 14 points if they lie on
- X the edge of the board up to 22 points if the lie in the centre. A
- X bishop is given a bonus of up to 5 points for each attack to a square
- X adjacent to the enemy king.
- X
- X
- XROOKS
- X The material value of a rook is 520 points. Rook mobility is handled
- X similiarly to bishops with a bonus of 0 points if blocked up to 20
- X points if attacking 12 squares or more. A bonus of 8 points for Xray
- X attacks is handled as it is for bishops. Rooks are given a bonus of
- X 10 points for occupying a file with no friendly pawns and a bonus of
- X 4 points if no enemy pawns lie on that file. After the opening Rooks
- X are penalized slightly depending on "taxicab" distance to the enemy
- X king.
- X
- X
- XQUEENS
- X The material value of a queen is 980 points. The only heuristic for a
- X queen is that after the opening it is penalized slightly for
- X "taxicab" distance to the enemy king.
- X
- X
- XKINGS
- X Kings are given a penalty for proximity to the centre in the opening
- X and a bonus for proximity to the centre in the endgame. The penalty
- X is about 24 points for being in the centre in the opening with a
- X bonus of about 36 points for being in the centre in the endgame.
- X Except when the otherside has only pawns. Then the bonus is turned off.
- X Kings are penalized for lying on an open or half-open file or if the
- X adjacent file closest to the corner is open or half-open. This
- X penalty is up to 23 points in the opening and goes to zero in the end
- X game. The King is penalized up to 8 points if there are no pawns
- X immediately adjacent. A penalty is invoked depending on the number of
- X "safe" checks available by the opponent. This penalty ranges from 6
- X points for one such check to 50 points for 4 or more. Depending on
- X game stage, Kings are given up to 10 points for castling and a
- X penalty of up to 40 points for moving before castling.
- X
- X
- XSPECIAL
- X If more than one piece is "hung" (attacked and not defended or
- X attacked by an enemy piece of lower value) an extra penalty of 10
- X points is invoked for that side and the search may be extended one
- X ply. Pinned or trapped pieces are treated similarly. A special mating
- X routine is used if one side has only a king and the other has mating
- X material.
- X
- END_OF_FILE
- if test 6524 -ne `wc -c <'doc/HEURISTICS'`; then
- echo shar: \"'doc/HEURISTICS'\" unpacked with wrong size!
- fi
- # end of 'doc/HEURISTICS'
- fi
- if test -f 'doc/INSTALL' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/INSTALL'\"
- else
- echo shar: Extracting \"'doc/INSTALL'\" \(184 characters\)
- sed "s/^X//" >'doc/INSTALL' <<'END_OF_FILE'
- X1. edit src/Makefile. Normally only LIBDIR and BINDIR need to be changed.
- X
- X2. in src type 'make' and all programs will be make.
- X
- X3. type 'make install' to install in BINDIR and LIBDIR
- END_OF_FILE
- if test 184 -ne `wc -c <'doc/INSTALL'`; then
- echo shar: \"'doc/INSTALL'\" unpacked with wrong size!
- fi
- # end of 'doc/INSTALL'
- fi
- if test -f 'doc/checkbook.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/checkbook.1'\"
- else
- echo shar: Extracting \"'doc/checkbook.1'\" \(1064 characters\)
- sed "s/^X//" >'doc/checkbook.1' <<'END_OF_FILE'
- X.TH CHECKBOOK GNUCHESS
- X.SH NAME
- Xcheckbook
- X.SH SYNOPSIS
- X.B checkbook
- X.B [-x]
- Xfilename
- X.SH DESCRIPTION
- X.I Checkbook
- Xis a program to check the opening book of
- X.I gnuchess
- Xfor illegal moves, or to check the output of
- X.I xboard
- Xfor illegal moves.
- X.PP
- X.I checkbook
- Xaccepts a file containing chess moves in algebraic notation and checks the file
- Xfor illegal moves. The file may be either a complete game or opening segments of a game
- Xseparated by lines beginning with '#' or '!'.
- X
- XCastling and en-passant moves are allowed. But in castling moves no check is made whether
- Xthe pieces have moved before or whether a intervening square is under attack.
- X
- XThe
- X.B -x
- Xoption allows use of
- X.I checkbook
- Xwith
- X.I xboard
- Xgame files. Its only effect is to cause the first 2 lines of the file to be skipped.
- XMoves may be numbered but do not need to be. Moves must be in full algebraic
- Xformat (i.e. a2a4). Short notation is not allowed.
- X
- X.SH "FUNCTION LETTERS"
- X.TP
- X.B -x
- XInput file is
- X.I xboard
- Xgame file.
- X.SH BUGS
- X.PP
- X.fi
- X.SH SEE ALSO
- X.nf
- Xgnuchess(6)
- Xchesstool(6)
- Xxboard(6)
- X.fi
- X
- END_OF_FILE
- if test 1064 -ne `wc -c <'doc/checkbook.1'`; then
- echo shar: \"'doc/checkbook.1'\" unpacked with wrong size!
- fi
- # end of 'doc/checkbook.1'
- fi
- if test -f 'doc/game.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/game.1'\"
- else
- echo shar: Extracting \"'doc/game.1'\" \(890 characters\)
- sed "s/^X//" >'doc/game.1' <<'END_OF_FILE'
- X.TH GAME GNUCHESS
- X.SH NAME
- Xgame
- X.SH SYNOPSIS
- X.B game
- X[start [end]]
- Xfilename
- X]
- X.SH DESCRIPTION
- X.I game
- Xcreates a board by board postscript output file on stdout for all or part of a chess game.
- XInput is a 'chess.lst' file output by
- X.I gnuchess.
- XWhen combined with the
- X.I ChessFont
- Xfile and sent to a postscript printer it will show all boards in the range specified.
- XFor each board the move and the current score are also printed.
- X.B ChessFont
- Xis courtesy of Andy Walker, Maths Dept., Nott'm Univ., UK. (anw@maths.nott.ac.uk)
- Xand is copyrighted by him.
- X
- XMoves starting at
- X.I start
- Xand ending with
- X.I end
- 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.
- X
- XTo use:
- X
- X.B game gamefile >tmp
- X
- X.B cat ChessFont tmp | lpr
- X
- X.SH "FUNCTION LETTERS"
- X.TP
- X.SH BUGS
- X.PP
- X.fi
- X.SH SEE ALSO
- X.nf
- Xgnuchess(6)
- Xchesstool(6)
- Xxboard(6)
- X.fi
- X
- END_OF_FILE
- if test 890 -ne `wc -c <'doc/game.1'`; then
- echo shar: \"'doc/game.1'\" unpacked with wrong size!
- fi
- # end of 'doc/game.1'
- fi
- if test -f 'doc/gnuan.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'doc/gnuan.1'\"
- else
- echo shar: Extracting \"'doc/gnuan.1'\" \(504 characters\)
- sed "s/^X//" >'doc/gnuan.1' <<'END_OF_FILE'
- X.TH GNUAN GNUCHESS
- X.SH NAME
- Xgnuan
- X.SH SYNOPSIS
- X.B gnuan
- X.SH DESCRIPTION
- X.I gnuan
- Xproduces an analysis of a chess game.
- XFor each move it shows the move, the score and the principle variation selected
- Xby
- X.I gnuchess
- X
- X.I gnuan
- Xprompts for input parameters when it is invoked.
- XInput file is a
- X.I gnuchess
- Xlist file.
- X.I gnuan is a modification of the gnuan program from
- XTruman Collins (tcollins@pdx.mentor.com).
- X.SH "FUNCTION LETTERS"
- X.SH BUGS
- X.PP
- X.fi
- X.SH SEE ALSO
- X.nf
- Xgnuchess(6)
- Xchesstool(6)
- Xxboard(6)
- X.fi
- X
- END_OF_FILE
- if test 504 -ne `wc -c <'doc/gnuan.1'`; then
- echo shar: \"'doc/gnuan.1'\" unpacked with wrong size!
- fi
- # end of 'doc/gnuan.1'
- fi
- if test -f 'misc/match' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'misc/match'\"
- else
- echo shar: Extracting \"'misc/match'\" \(861 characters\)
- sed "s/^X//" >'misc/match' <<'END_OF_FILE'
- X#!/bin/sh
- X#
- X# match -- play a series of games using xboard as a referee
- X#
- X
- Xcase $# in
- X8) COUNT=0; PGM1=$2 ; PGM2=$4 ; LENGTH=$6 ; MODE=$8 ;;
- X*) echo "Usage: match -pgm1 pgm -pgm2 pgm -length \
- Xgames -mode (Init | Position | Opening)" ; exit
- Xesac
- X
- Xwhile (:)
- Xdo
- X if (test $COUNT -eq $LENGTH)
- X then
- X break
- X else
- X COUNT=`echo $COUNT | awk '{print $0 + 1}'`
- X MODULO=`echo $COUNT | awk '{print $0 % 2}'`
- X if (test $MODULO -eq 0)
- X then
- X xboard -fcp $PGM1 -scp $PGM2 \
- X -matchMode $MODE -saveGameFile match.game.$COUNT \
- X -savePositionFile match.position.$COUNT -iconic
- X else
- X xboard -fcp $PGM2 -scp $PGM1 \
- X -matchMode $MODE -saveGameFile match.game.$COUNT \
- X -savePositionFile match.position.$COUNT -iconic
- X fi
- X fi
- Xdone
- END_OF_FILE
- if test 861 -ne `wc -c <'misc/match'`; then
- echo shar: \"'misc/match'\" unpacked with wrong size!
- fi
- chmod +x 'misc/match'
- # end of 'misc/match'
- fi
- if test -f 'src/CLp43.May31-114248B' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/CLp43.May31-114248B'\"
- else
- echo shar: Extracting \"'src/CLp43.May31-114248B'\" \(781 characters\)
- sed "s/^X//" >'src/CLp43.May31-114248B' <<'END_OF_FILE'
- Xgnuchess 4p43 game
- X score depth nodes time score depth nodes time
- X d2d4 0 0 0 300 d7d5 -19 0 0 0
- X e2e4 0 0 0 400 d5e4 50 5 9010 1200
- X b1c3 0 0 0 500 g8f6 58 5 7305 900
- X f2f3 0 0 0 700 e4f3 88 4 3325 400
- X d1f3 0 0 0 400 d8d4 181 4 5384 800
- X c1e3 0 0 0 200 d4h4 166 4 3875 700
- X g2g3 0 0 0 900 h4b4 141 4 4568 500
- X e1c1 0 0 0 300 b8c6 95 3 4043 400
- X c3b5 0 0 0 1000 b4a5 130 3 5257 400
- X
- X
- END_OF_FILE
- if test 781 -ne `wc -c <'src/CLp43.May31-114248B'`; then
- echo shar: \"'src/CLp43.May31-114248B'\" unpacked with wrong size!
- fi
- # end of 'src/CLp43.May31-114248B'
- fi
- if test -f 'src/README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/README'\"
- else
- echo shar: Extracting \"'src/README'\" \(344 characters\)
- sed "s/^X//" >'src/README' <<'END_OF_FILE'
- XThere is a problem with the gcc 2.00 pre processor and FIONREAD
- Xwill not compile properly on gcc 2.00. If you get an error
- Xmessage you may need to substitute a value for FIONREAD in
- XElapsedTime. The correct line for a SunsparcOS4 is included
- Xas a comment. cpp on 2.00 does not substitute in quotes,
- XsunOS cc and gcc 1.40 handle this correctly.
- END_OF_FILE
- if test 344 -ne `wc -c <'src/README'`; then
- echo shar: \"'src/README'\" unpacked with wrong size!
- fi
- # end of 'src/README'
- fi
- if test -f 'src/ataks.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/ataks.c'\"
- else
- echo shar: Extracting \"'src/ataks.c'\" \(1913 characters\)
- sed "s/^X//" >'src/ataks.c' <<'END_OF_FILE'
- X/*
- X * ataks.c - C source for GNU CHESS
- X *
- X * Copyright (c) 1988,1989,1990 John Stanback
- X * Copyright (c) 1992 Free Software Foundation
- X *
- X * This file is part of GNU CHESS.
- X *
- X * GNU Chess is free software; you can redistribute it and/or modify
- X * it under the terms of the GNU General Public License as published by
- X * the Free Software Foundation; either version 2, or (at your option)
- X * any later version.
- X *
- X * GNU Chess is distributed in the hope that it will be useful,
- X * but WITHOUT ANY WARRANTY; without even the implied warranty of
- X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- X * GNU General Public License for more details.
- X *
- X * You should have received a copy of the GNU General Public License
- X * along with GNU Chess; see the file COPYING. If not, write to
- X * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- X */
- X#include "gnuchess.h"
- Xvoid
- Xataks (short int side, short int *a)
- X
- X/*
- X * Fill array atak[][] with info about ataks to a square. Bits 8-15 are set
- X * if the piece (king..pawn) ataks the square. Bits 0-7 contain a count of
- X * total ataks to the square.
- X */
- X
- X{
- X register short u, c, sq;
- X register unsigned char *ppos, *pdir;
- X short i, piece, *PL;
- X
- X#ifdef NOMEMSET
- X for (u = 64; u; a[--u] = 0) ;
- X#else
- X memset ((char *) a, 0, 64 * sizeof (a[0]));
- X#endif /* NOMEMSET */
- X PL = PieceList[side];
- X for (i = PieceCnt[side]; i >= 0; i--)
- X {
- X sq = PL[i];
- X piece = board[sq];
- X c = control[piece];
- X if (sweep[piece])
- X {
- X ppos = nextpos[piece][sq];
- X pdir = nextdir[piece][sq];
- X u = ppos[sq];
- X do
- X {
- X a[u] = (++a[u] | c);
- X u = ((color[u] == neutral) ? ppos[u] : pdir[u]);
- X } while (u != sq);
- X }
- X else
- X {
- X pdir = nextdir[ptype[side][piece]][sq];
- X u = pdir[sq]; /* follow captures thread for pawns */
- X do
- X {
- X a[u] = (++a[u] | c);
- X u = pdir[u];
- X } while (u != sq);
- X }
- X }
- X}
- END_OF_FILE
- if test 1913 -ne `wc -c <'src/ataks.c'`; then
- echo shar: \"'src/ataks.c'\" unpacked with wrong size!
- fi
- # end of 'src/ataks.c'
- fi
- if test -f 'src/version.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/version.h'\"
- else
- echo shar: Extracting \"'src/version.h'\" \(134 characters\)
- sed "s/^X//" >'src/version.h' <<'END_OF_FILE'
- X/*
- X * This is GNU Chess.
- X * Copyright (c) 1986-1992 Free Software Foundation.
- X *
- X */
- Xchar *version = "4.00";
- Xchar *patchlevel = "44";
- END_OF_FILE
- if test 134 -ne `wc -c <'src/version.h'`; then
- echo shar: \"'src/version.h'\" unpacked with wrong size!
- fi
- # end of 'src/version.h'
- fi
- if test -f 'test/test.inet' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test.inet'\"
- else
- echo shar: Extracting \"'test/test.inet'\" \(506 characters\)
- sed "s/^X//" >'test/test.inet' <<'END_OF_FILE'
- XBlack computer White Human 1 # try a1h1 ... Bd4 ... b6b8 .... h1h7
- XCastled White false Black false
- XTimeControl 1 Operator Time 0
- XWhite Clock 540000 Moves 30
- XBlack Clock 540000 Moves 30
- X
- X8 ...R.... 10 10 10 10 10 10 10 10
- X7 ..R.PK.. 10 10 10 10 0 10 10 10
- X6 .rP..P.. 0 10 10 0 0 10 0 0
- X5 .Np..pP. 0 10 10 0 0 10 10 0
- X4 .p.p..p. 0 10 0 10 0 0 10 0
- X3 ......k. 0 0 0 0 0 0 10 0
- X2 .b...... 10 10 10 10 10 10 10 10
- X1 r....... 0 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 506 -ne `wc -c <'test/test.inet'`; then
- echo shar: \"'test/test.inet'\" unpacked with wrong size!
- fi
- # end of 'test/test.inet'
- fi
- if test -f 'test/test1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test1'\"
- else
- echo shar: Extracting \"'test/test1'\" \(478 characters\)
- sed "s/^X//" >'test/test1' <<'END_OF_FILE'
- XBlack computer White Human 1 #correct move d4d5
- XCastled White false Black false
- XTimeControl 0 Operator Time 0
- XWhite Clock 0000 Moves 0
- XBlack Clock 0000 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ........ 10 10 10 10 10 10 10 10
- X6 ..PP...K 0 0 10 10 0 0 0 10
- X5 ........ 0 0 0 0 0 0 0 0
- X4 .p.p...k 0 10 0 10 0 0 0 10
- X3 ........ 0 0 0 0 0 0 0 0
- X2 ........ 10 10 10 10 10 10 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 478 -ne `wc -c <'test/test1'`; then
- echo shar: \"'test/test1'\" unpacked with wrong size!
- fi
- # end of 'test/test1'
- fi
- if test -f 'test/test10' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test10'\"
- else
- echo shar: Extracting \"'test/test10'\" \(491 characters\)
- sed "s/^X//" >'test/test10' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct f3f4 Cray Blitz at 17 plys
- XCastled White false Black false #
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ........ 10 10 10 10 10 10 10 10
- X6 P......P 0 0 0 10 10 10 0 0
- X5 .P...KP. 0 0 0 0 0 0 0 0
- X4 .p...... 0 0 0 0 0 0 0 0
- X3 p....pkp 0 0 0 10 10 0 0 0
- X2 .....p.. 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 491 -ne `wc -c <'test/test10'`; then
- echo shar: \"'test/test10'\" unpacked with wrong size!
- fi
- # end of 'test/test10'
- fi
- if test -f 'test/test11' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test11'\"
- else
- echo shar: Extracting \"'test/test11'\" \(475 characters\)
- sed "s/^X//" >'test/test11' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct c5d5 easy
- XCastled White false Black false #
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ..K..... 10 10 10 10 10 10 10 10
- X6 P.p..... 0 0 0 10 10 10 0 0
- X5 p.k..... 0 0 0 0 0 0 0 0
- X4 ........ 0 0 0 0 0 0 0 0
- X3 ........ 0 0 0 10 10 0 0 0
- X2 ........ 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 475 -ne `wc -c <'test/test11'`; then
- echo shar: \"'test/test11'\" unpacked with wrong size!
- fi
- # end of 'test/test11'
- fi
- if test -f 'test/test13' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test13'\"
- else
- echo shar: Extracting \"'test/test13'\" \(510 characters\)
- sed "s/^X//" >'test/test13' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct e3e4 Cray Blitz at 13 plys
- XCastled White false Black false # sees it wins a pawn
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 .......P 10 10 10 10 10 10 10 10
- X6 ..K.pP.. 0 0 0 10 10 10 0 0
- X5 PP.P..P. 0 0 0 0 0 0 0 0
- X4 ...p..p. 0 0 0 0 0 0 0 0
- X3 ....p... 0 0 0 10 10 0 0 0
- X2 p...k..p 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 510 -ne `wc -c <'test/test13'`; then
- echo shar: \"'test/test13'\" unpacked with wrong size!
- fi
- # end of 'test/test13'
- fi
- if test -f 'test/test14' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test14'\"
- else
- echo shar: Extracting \"'test/test14'\" \(510 characters\)
- sed "s/^X//" >'test/test14' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct e2f2 Cray Blitz at 18 plys
- XCastled White false Black false # sees it wins a pawn
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ......P. 10 10 10 10 10 10 10 10
- X6 ...K.P.. 0 0 0 10 10 10 0 0
- X5 ..P..pP. 0 0 0 0 0 0 0 0
- X4 ..p.P.p. 0 0 0 0 0 0 0 0
- X3 .p....p. 0 0 0 10 10 0 0 0
- X2 ....k... 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 510 -ne `wc -c <'test/test14'`; then
- echo shar: \"'test/test14'\" unpacked with wrong size!
- fi
- # end of 'test/test14'
- fi
- if test -f 'test/test15' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test15'\"
- else
- echo shar: Extracting \"'test/test15'\" \(517 characters\)
- sed "s/^X//" >'test/test15' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct e5f4 Cray Blitz at 17 plys
- XCastled White false Black false #PEASENT sees it at 11 plys
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ....K... 10 10 10 10 10 10 10 10
- X7 ....pP.. 10 10 10 10 10 10 10 10
- X6 .....p.. 0 0 0 10 10 10 0 0
- X5 ....k... 0 0 0 0 0 0 0 0
- X4 ........ 0 0 0 0 0 0 0 0
- X3 ........ 0 0 0 10 10 0 0 0
- X2 ........ 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 517 -ne `wc -c <'test/test15'`; then
- echo shar: \"'test/test15'\" unpacked with wrong size!
- fi
- # end of 'test/test15'
- fi
- if test -f 'test/test16' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test16'\"
- else
- echo shar: Extracting \"'test/test16'\" \(503 characters\)
- sed "s/^X//" >'test/test16' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct d5d6 Cray Blitz at 15 plys
- XCastled White false Black false # wins 3 pawns
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 .K...PPP 10 10 10 10 10 10 10 10
- X6 ........ 0 0 0 10 10 10 0 0
- X5 ...k.... 0 0 0 0 0 0 0 0
- X4 .......p 0 0 0 0 0 0 0 0
- X3 .....pp. 0 0 0 10 10 0 0 0
- X2 ........ 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 503 -ne `wc -c <'test/test16'`; then
- echo shar: \"'test/test16'\" unpacked with wrong size!
- fi
- # end of 'test/test16'
- fi
- if test -f 'test/test2' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test2'\"
- else
- echo shar: Extracting \"'test/test2'\" \(511 characters\)
- sed "s/^X//" >'test/test2' <<'END_OF_FILE'
- XBlack computer White Human 1 #correct move b5b6 Peasent 8 plys Cray Blitz 14 plys
- XCastled White false Black false
- XTimeControl 0 Operator Time 50
- XWhite Clock 0000 Moves 0
- XBlack Clock 0000 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 PPP..... 0 0 0 10 10 10 10 10
- X6 ........ 0 0 0 0 0 0 0 0
- X5 ppp...KP 10 10 10 0 0 0 10 10
- X4 ........ 0 0 0 0 0 0 0 0
- X3 ......kp 0 0 0 0 0 0 10 10
- X2 ........ 10 10 10 10 10 10 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 511 -ne `wc -c <'test/test2'`; then
- echo shar: \"'test/test2'\" unpacked with wrong size!
- fi
- # end of 'test/test2'
- fi
- if test -f 'test/test3' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test3'\"
- else
- echo shar: Extracting \"'test/test3'\" \(495 characters\)
- sed "s/^X//" >'test/test3' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct move g3g4 at 13 plys +500
- XCastled White false Black false
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 P....... 0 10 10 10 10 10 10 10
- X6 .P.K.P.. 0 10 0 10 0 10 0 0
- X5 .p..PP.P 0 10 0 0 10 10 0 10
- X4 .p.p...p 0 10 0 10 0 0 0 10
- X3 ....kpp. 0 0 0 0 10 10 10 0
- X2 ........ 10 10 10 10 10 10 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 495 -ne `wc -c <'test/test3'`; then
- echo shar: \"'test/test3'\" unpacked with wrong size!
- fi
- # end of 'test/test3'
- fi
- if test -f 'test/test4' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test4'\"
- else
- echo shar: Extracting \"'test/test4'\" \(476 characters\)
- sed "s/^X//" >'test/test4' <<'END_OF_FILE'
- XBlack computer White Human 1 #correct c4c5 cray 11 plys
- XCastled White false Black false
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 PP.....P 0 0 10 10 10 10 10 0
- X6 ........ 0 0 0 0 0 0 0 0
- X5 pp..K... 10 10 0 0 10 0 0 0
- X4 ..p..PP. 0 0 10 0 0 10 10 0
- X3 ...k.... 0 0 0 10 0 0 0 0
- X2 ......pp 10 10 10 10 10 10 0 0
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 476 -ne `wc -c <'test/test4'`; then
- echo shar: \"'test/test4'\" unpacked with wrong size!
- fi
- # end of 'test/test4'
- fi
- if test -f 'test/test5' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test5'\"
- else
- echo shar: Extracting \"'test/test5'\" \(473 characters\)
- sed "s/^X//" >'test/test5' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct h6h5 mate in 19
- XCastled White false Black false
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ......K. 10 10 10 10 10 10 10 10
- X7 .......P 10 10 10 10 10 10 10 0
- X6 .....p.k 0 0 0 0 0 10 0 10
- X5 ........ 0 0 0 0 0 0 0 0
- X4 ........ 0 0 0 0 0 0 0 0
- X3 ........ 0 0 0 0 0 0 0 0
- X2 .......p 10 10 10 10 10 10 10 0
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 473 -ne `wc -c <'test/test5'`; then
- echo shar: \"'test/test5'\" unpacked with wrong size!
- fi
- # end of 'test/test5'
- fi
- if test -f 'test/test6' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test6'\"
- else
- echo shar: Extracting \"'test/test6'\" \(482 characters\)
- sed "s/^X//" >'test/test6' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct e3e4 cray at 21 plys
- XCastled White false Black false
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ........ 10 10 10 10 10 10 10 10
- X6 ...PKP.. 0 0 0 10 10 10 0 0
- X5 ........ 0 0 0 0 0 0 0 0
- X4 ........ 0 0 0 0 0 0 0 0
- X3 ...pk... 0 0 0 10 10 0 0 0
- X2 .....p.. 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 482 -ne `wc -c <'test/test6'`; then
- echo shar: \"'test/test6'\" unpacked with wrong size!
- fi
- # end of 'test/test6'
- fi
- if test -f 'test/test7' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test7'\"
- else
- echo shar: Extracting \"'test/test7'\" \(488 characters\)
- sed "s/^X//" >'test/test7' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct d4d5 Cray Blitz at 19 plys
- XCastled White false Black false
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ........ 10 10 10 10 10 10 10 10
- X6 ..PPK... 0 0 0 10 10 10 0 0
- X5 ........ 0 0 0 0 0 0 0 0
- X4 ..ppk... 0 0 0 0 0 0 0 0
- X3 ..p..... 0 0 0 10 10 0 0 0
- X2 ........ 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 488 -ne `wc -c <'test/test7'`; then
- echo shar: \"'test/test7'\" unpacked with wrong size!
- fi
- # end of 'test/test7'
- fi
- if test -f 'test/test8' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test8'\"
- else
- echo shar: Extracting \"'test/test8'\" \(507 characters\)
- sed "s/^X//" >'test/test8' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct b3b4 Cray Blitz at 18 plys
- XCastled White false Black false # sees only a draw
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ..P..... 10 10 10 10 10 10 10 10
- X6 ...K.... 0 0 0 10 10 10 0 0
- X5 .P.P.k.. 0 0 0 0 0 0 0 0
- X4 ........ 0 0 0 0 0 0 0 0
- X3 .p.p.... 0 0 0 10 10 0 0 0
- X2 ..p..... 10 10 10 10 10 0 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 507 -ne `wc -c <'test/test8'`; then
- echo shar: \"'test/test8'\" unpacked with wrong size!
- fi
- # end of 'test/test8'
- fi
- if test -f 'test/test9' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/test9'\"
- else
- echo shar: Extracting \"'test/test9'\" \(503 characters\)
- sed "s/^X//" >'test/test9' <<'END_OF_FILE'
- XBlack computer White Human 1 # correct a1b1 Cray Blitz at 18 plys
- XCastled White false Black false # sees the win
- XTimeControl 0 Operator Time 0
- XWhite Clock 0 Moves 0
- XBlack Clock 0 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 K....... 10 10 10 10 10 10 10 10
- X6 ...P.... 0 0 0 10 10 10 0 0
- X5 P..p.P.. 0 0 0 0 0 0 0 0
- X4 p..p.p.. 0 0 0 0 0 0 0 0
- X3 ........ 0 0 0 10 10 0 0 0
- X2 ........ 10 10 10 10 10 0 10 10
- X1 k....... 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 503 -ne `wc -c <'test/test9'`; then
- echo shar: \"'test/test9'\" unpacked with wrong size!
- fi
- # end of 'test/test9'
- fi
- if test -f 'test/testm' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'test/testm'\"
- else
- echo shar: Extracting \"'test/testm'\" \(478 characters\)
- sed "s/^X//" >'test/testm' <<'END_OF_FILE'
- XBlack computer White Human 1 #correct move d4d5
- XCastled White false Black false
- XTimeControl 0 Operator Time 0
- XWhite Clock 0000 Moves 0
- XBlack Clock 0000 Moves 0
- X
- X8 ........ 10 10 10 10 10 10 10 10
- X7 ........ 10 10 10 10 10 10 10 10
- X6 ..PP...K 0 0 10 10 0 0 0 10
- X5 ........ 0 0 0 0 0 0 0 0
- X4 .p.p...k 0 10 0 10 0 0 0 10
- X3 ........ 0 0 0 0 0 0 0 0
- X2 ........ 10 10 10 10 10 10 10 10
- X1 ........ 10 10 10 10 10 10 10 10
- X abcdefgh
- X
- Xmove score depth nodes time flags capture color
- END_OF_FILE
- if test 478 -ne `wc -c <'test/testm'`; then
- echo shar: \"'test/testm'\" unpacked with wrong size!
- fi
- # end of 'test/testm'
- fi
- echo shar: End of archive 12 \(of 12\).
- cp /dev/null ark12isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 12 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- echo Building book file.
- cat misc/book.xaa misc/book.xab > misc/gnuchess.nunn.book
- rm misc/book.xaa misc/book.xab
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-