home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-06-18 | 56.7 KB | 1,962 lines |
- Newsgroups: comp.sources.misc
- From: Henry Thomas <hthomas@irisa.fr>
- Subject: v20i052: notation - chess text handler, Part01/04
- Message-ID: <csm-v20i052=notation.001358@sparky.IMD.Sterling.COM>
- X-Md4-Signature: 71bd22a7ccce0ac8f980140f12ca2567
- Date: Mon, 17 Jun 1991 05:15:18 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: Henry Thomas <hthomas@irisa.fr>
- Posting-number: Volume 20, Issue 52
- Archive-name: notation/part01
- Supersedes: notation: Volume 18, Issue 12-14
-
- This program reads chess games, either full algebraic or shortened
- (ie Nf1-g3 or f1g3 or Ng3) and is able to ouptut the board after any
- move, in ascii form, postscript, or nroff or suitable for some TeX
- macros. Also, it can generate output for gnuan and the xboard
- program. It is multi-lingual (european) for piece identification. The
- program understand french, english, german, spanish dutch and italian
- (send me piece symbols for other languages dannish, swedish,
- russian... I will incorporate them happily). The program also accepts
- variations and is able to handle symbol-comments.
-
- This program is ok on UNIX (Sun Sparc Station and Sun-3). It uses
- standard C, and functions declarations are done in both K&R-C and
- ANSI-C. I guess won't be too difficult to compile on a IBM-PC with
- MSC. (I get to work an older function with TURBO-C).
-
- Anyway, if you want to quickly try the program, issue the command
- "make" in this directory, and then type "notation algebric.txt" to
- test the programm on Kasparov/Karpov game 13 (Lyon, November 1990).
- Read and modify the makefile for customizing notation to your national
- language and library path. If you want a complete manual, read
- notation.doc. To print a postscript file, use "print-ps file"
-
- ** COPYRIGHT
- This is a freeware program. Commercial use is prohibited. It is free
- for non-commercial use. You have the right to modify it, give it,
- provided you don't modify the copyright notice and my name still
- remains clearly indicated. For the others packages (Cheq and chess
- font) refer to the original copyright notice.
-
- If you're happy with this program, let me know. Also, I'm interested
- in any advice to a novice player of chess. I would appreciate if
- someone might give me advices about openings: overview, what they are
- for, which ones are not too risky for a novice etc... Thanks.
-
- I hope the program is clear enough to be easily modified. Anyway,
- I would like to centralize modifications, in order to manage an
- up-to-date version. So send me the modifications in forms of diff
- files, if possible, along with the version number of the program.
-
- Henry Thomas - IRISA - E-mail: Henry.Thomas@irisa.fr
- Campus Universitaire de Beaulieu - Phone: (+33)99 36 20 00 +549
- 35042 RENNES CEDEX FRANCE - Fax: (+33)99 38 38 32 Telex: UNIRISA 950473F
- Telex Atlas X400: /X121=842950473/@atlas.fr, Fax:/X121=200099383832/@atlas.fr
- --
- #! /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 1 (of 4)."
- # Contents: . CHANGES Footer.ps HELPFILE Header.ps Header.tex MANIFEST
- # Makefile README TODO algebric.txt boudy.txt chesssymb.def
- # chesstype.h convsymb.tex convsymb.txt drivers.h keywords.txt
- # lexer.h lexer.l notation.h print-ps symb.tex symboles.tex
- # symboles.txt
- # Wrapped by hthomas@cattus on Sun Jun 16 18:17:27 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'CHANGES' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'CHANGES'\"
- else
- echo shar: Extracting \"'CHANGES'\" \(794 characters\)
- sed "s/^X//" >'CHANGES' <<'END_OF_FILE'
- X** 24/01/91 THe program sould be ANSI-C. At last, it compiles with "gcc
- X-ansi -pedantic"
- X
- X** 24/04/91 Cleaned-up a few bugs, and added -i and -v options.
- X
- X** 16/04/91 NEW NEW version: now handles variations and codified
- Xcomment, as well as specials strings as title, subtitle, score and
- Xcomments.
- X
- X** 12/04/91 added the following languages: czech, hungarian, polish,
- Xromanian, FIDE. Thanks to Lael.
- X
- X** 11/05/91 NEW VERSION. Many many improvements: en-passant,
- Xpromotion. Split the source in many differents file. Programming style
- Ximproved etc...
- X
- X** 20/03/91 gnu driver has change. It is now named "xchess". The "gnu"
- Xname is now used for "gnuan" type files.
- X
- X** much improved latex output
- X
- X** improved internal move generation
- X
- X** added @special keyword, to directly include text in output
- END_OF_FILE
- if test 794 -ne `wc -c <'CHANGES'`; then
- echo shar: \"'CHANGES'\" unpacked with wrong size!
- fi
- # end of 'CHANGES'
- fi
- if test -f 'Footer.ps' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Footer.ps'\"
- else
- echo shar: Extracting \"'Footer.ps'\" \(196 characters\)
- sed "s/^X//" >'Footer.ps' <<'END_OF_FILE'
- X2 ENDPAGE
- X%%PageTrailer
- X%%PageFonts: Times-Roman Cheq
- X%%PageBoundingBox: 20 20 576 756
- X%%Trailer
- Xend %PROLOGUE
- X%%Pages: 1
- X%%BoundingBox: 20 20 576 756
- X%%DocumentFonts: Times-Roman Cheq
- X%%EOF
- END_OF_FILE
- if test 196 -ne `wc -c <'Footer.ps'`; then
- echo shar: \"'Footer.ps'\" unpacked with wrong size!
- fi
- # end of 'Footer.ps'
- fi
- if test -f 'HELPFILE' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'HELPFILE'\"
- else
- echo shar: Extracting \"'HELPFILE'\" \(1160 characters\)
- sed "s/^X//" >'HELPFILE' <<'END_OF_FILE'
- XCommand line options:
- Xnotation [options]
- X where options are
- X -a : algebraic move notation output
- X -s : shortened move notation output
- X -f <language> : specify the chess symbol input language .The
- X language can be any of:
- X french, english, italian, spanish, german, dutch,
- X czech, hungarian, polish, romanian, FIDE.
- X (portuguese symbols are the same as spanish)
- X -t <language> : specify the chess symbol output language.
- X Same options as input language
- X <inputfile> : specify the input file. If none, keyboard is assumed
- X -o <outputfile> : specify the output file. If none, screen is assumed
- X -c <number>[,<number] : specify the number of the moves to display
- X the board. if none, board is diplayed at end of file
- X -e <number> : display the board at the move number and then stops
- X -b : display only the board, not the moves
- X -d <drivername> : specify the output driver. It can be any of
- X the following:
- X ascii
- X postscript
- X tex (latex)
- X roff
- X xchess (xchess save format)
- X gnu (gnuan input format)
- X -i : suppress headers/footer in output (useful
- X for tex/ps drivers)
- X -h : shows this help
- X -v : shows version number
- X
- END_OF_FILE
- if test 1160 -ne `wc -c <'HELPFILE'`; then
- echo shar: \"'HELPFILE'\" unpacked with wrong size!
- fi
- # end of 'HELPFILE'
- fi
- if test -f 'Header.ps' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Header.ps'\"
- else
- echo shar: Extracting \"'Header.ps'\" \(2180 characters\)
- sed "s/^X//" >'Header.ps' <<'END_OF_FILE'
- X%!PS-Adobe-2.1
- X%%% HOW TO USE: from Unix, "cat Cheq Example | lpr -Pprintername "
- X%%Title: Cheq.cheqtxtx
- X%%Creator: Glenn Reid and still.ps (V 1.0d release 10 edit 08)
- X%%BoundingBox: (atend)
- X%%Pages: (atend)
- X%%DocumentProcSets: Adobe_distill 0.95
- X%%EndComments
- X%%BeginProcSet: Adobe_distill 0.95
- X/PROLOGUE 30 40 add dict def
- X % 30 procedure entries + room for 40 cached font dictionaries
- X PROLOGUE begin
- X /clip { } def % causes problems. remove if "clip" is needed
- X /bdef { bind def } bind def /ldef { load def } bdef
- X /T { moveto show } bdef /A { moveto ashow } bdef
- X /W { moveto widthshow } bdef /AW { moveto awidthshow } bdef
- X /f /fill ldef /R { { rlineto } repeat } bdef
- X /r /rlineto ldef /L { { lineto } repeat } bdef
- X /m /moveto ldef /l { moveto lineto stroke } bdef
- X /x { 0 rlineto } bdef /y { 0 exch rlineto } bdef
- X /c /curveto ldef /cp /closepath ldef
- X /s /stroke ldef /w /setlinewidth ldef
- X /g /setgray ldef /j /setlinejoin ldef
- X /d /setdash ldef /F /setfont ldef
- X /C /setcmykcolor where { /setcmykcolor get }{ %ifelse
- X { %def
- X 1 sub 3 { 3 index add neg dup 0 lt { pop 0 } if 3 1 roll } repeat
- X setrgbcolor
- X } bind
- X } ifelse def
- X /MF { findfont exch makefont setfont } bdef
- X /DF { findfont exch scalefont setfont currentfont def } bdef
- X /BEGINPAGE { pop /pagesave save def } bdef
- X /ENDPAGE { pop pagesave restore showpage } def
- X /REMAP { %def
- X FontDirectory 2 index known { pop pop pop } { %ifelse
- X findfont dup length dict begin
- X { 1 index /FID ne {def}{pop pop} ifelse } forall
- X exch dup length 0 gt { /Encoding exch def }{ pop } ifelse
- X currentdict end definefont pop
- X } ifelse
- X } bdef
- X /RECODE { %def
- X 3 -1 roll 1 index findfont /Encoding get 256 array copy exch
- X 0 exch { %forall
- X dup type/nametype eq
- X { 3 {2 index} repeat put pop 1 add }{ exch pop }ifelse
- X } forall pop 3 1 roll REMAP
- X } bdef
- X end %PROLOGUE
- X%%EndProcSet: Adobe_distill 0.95
- X%%EndProlog
- X%%BeginSetup
- XPROLOGUE begin
- X
- X%%EndSetup
- X%%Page: 1 1
- X%%PageFonts: (atend)
- X%%PageBoundingBox: (atend)
- X1 BEGINPAGE
- X1 1 1 0 C
- X/F1 12 /Times-Roman DF
- X(output of program notation, using font Cheq \(gift of Adobe Systems\))
- X72 756 T
- X/F2 30 /Cheq DF
- END_OF_FILE
- if test 2180 -ne `wc -c <'Header.ps'`; then
- echo shar: \"'Header.ps'\" unpacked with wrong size!
- fi
- # end of 'Header.ps'
- fi
- if test -f 'Header.tex' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Header.tex'\"
- else
- echo shar: Extracting \"'Header.tex'\" \(2509 characters\)
- sed "s/^X//" >'Header.tex' <<'END_OF_FILE'
- X% Header for chess printing
- X\documentstyle[twocolumn]{article}
- X\font\chess=chess20
- X\font\figchess=chessfig10
- X%
- X%%%%%%%%%
- X%% FIGURES
- X\newcommand{\FigK}{{\figchess K}}
- X\newcommand{\FigQ}{{\figchess Q}}
- X\newcommand{\FigR}{{\figchess R}}
- X\newcommand{\FigB}{{\figchess B}}
- X\newcommand{\FigN}{{\figchess N}}
- X\newcommand{\FigPawn}{{\figchess P}}
- X\newcommand{\FigP}{}
- X\newcommand{\FigVoid}{}
- X\newcommand{\FigDash}{--}
- X\newcommand{\FigCapt}{$\times$}
- X%\newcommand{\FigDots}{~$\ldots$,}
- X\newcommand{\FigDots}{$\ldots$}
- X\newcommand{\FigDot}{\char46}
- X%
- X% inclusion of comments definition
- X\input{chesssymb.tex}
- X%
- X% white pieces on white
- X\def\WKW{{\chess K}}
- X\def\WQW{{\chess Q}}
- X\def\WRW{{\chess R}}
- X\def\WBW{{\chess B}}
- X\def\WNW{{\chess N}}
- X\def\WPW{{\chess P}}
- X% white pieces on black
- X\def\WKB{{\chess J}}
- X\def\WQB{{\chess L}}
- X\def\WRB{{\chess S}}
- X\def\WBB{{\chess A}}
- X\def\WNB{{\chess M}}
- X\def\WPB{{\chess O}}
- X% black pieces on white
- X\def\BKW{{\chess k}}
- X\def\BQW{{\chess q}}
- X\def\BRW{{\chess r}}
- X\def\BBW{{\chess b}}
- X\def\BNW{{\chess n}}
- X\def\BPW{{\chess p}}
- X% black pieces on black
- X\def\BKB{{\chess j}}
- X\def\BQB{{\chess l}}
- X\def\BRB{{\chess s}}
- X\def\BBB{{\chess a}}
- X\def\BNB{{\chess m}}
- X\def\BPB{{\chess o}}
- X% white empty
- X\def\WWW{{\chess 0}}
- X% black empty */
- X\def\DDD{{\chess Z}}
- X%
- X\def\vvrule{\vrule width1pt} \def\hhrule{\hrule height1pt}
- X%%%%%%%%%%%%%%%%%%%%%%%%
- X% Movements macros
- X%%
- X% dumb definitions
- X\newcommand{\MoveNumber}[1]{{#1}\ }
- X\newcommand{\WhiteMove}[1]{{#1}\ }
- X\newcommand{\BlackMove}[1]{{#1}\ }
- X%
- X% These macros display one move per line
- X\newcommand{\ChessModeV}{%
- X\renewcommand{\MoveNumber}[1]{~\newline \noindent\makebox[1.5cm][r]{##1}}%
- X\renewcommand{\WhiteMove}[1]{\makebox[2cm][r]{##1}}%
- X\renewcommand{\BlackMove}[1]{\makebox[2cm][r]{##1} }%
- X}
- X%
- X% These macros display many moves per line
- X\newcommand{\ChessModeH}{%
- X\renewcommand{\MoveNumber}[1]{{##1}\ }%
- X\renewcommand{\WhiteMove}[1]{{##1}\ }%
- X\renewcommand{\BlackMove}[1]{{##1}\ }%
- X}
- X%% Here we define tthe two mode, for the main line and the variation
- X\newcommand{\MainLine}{\ChessModeH}
- X\newcommand{\VariationLine}{\ChessModeH}
- X\MainLine
- X%
- X%
- X\newcommand{\bc}{\begin{center}}
- X\newcommand{\ec}{\end{center}}
- X%
- X\newcommand{\ChessTitle}[1]{\bc{\large\bf #1}\ec}
- X\newcommand{\ChessSubTitle}[1]{\bc{\sc #1}\ec}
- X\newcommand{\ChessScore}[1]{{\bf #1}}
- X%
- X%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- X\begin{document}
- X%\title{Notation Output}
- X%\author{notation program (C) Henry Thomas 1990}
- X%\date{\today}
- X%\maketitle
- END_OF_FILE
- if test 2509 -ne `wc -c <'Header.tex'`; then
- echo shar: \"'Header.tex'\" unpacked with wrong size!
- fi
- # end of 'Header.tex'
- fi
- if test -f 'MANIFEST' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MANIFEST'\"
- else
- echo shar: Extracting \"'MANIFEST'\" \(0 characters\)
- sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
- END_OF_FILE
- if test 0 -ne `wc -c <'MANIFEST'`; then
- echo shar: \"'MANIFEST'\" unpacked with wrong size!
- fi
- # end of 'MANIFEST'
- fi
- if test -f 'Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Makefile'\"
- else
- echo shar: Extracting \"'Makefile'\" \(2915 characters\)
- sed "s/^X//" >'Makefile' <<'END_OF_FILE'
- X# Makefile for notation program
- X# (C) Henry Thomas 1990
- X
- XFILES = notation.c drivers.c lexer.c lexer.l
- XHEADERS = notation.h drivers.h lexer.h chesstype.h chesssymb.def
- X#LIBDIR = ./lib
- XLIBDIR = .
- XBINDIR=$(HOME)/local/bin.$(HOSTTYPE)
- X
- XOBJECTS = notation.o drivers.o lexer.o
- X
- XOTHERFILES = Makefile HELPFILE \
- X keywords.txt algebric.txt shortened.txt boudy.txt\
- X notation.doc notation.n \
- X README TODO COPYING CHANGES \
- X print-ps \
- X Header.ps Footer.ps Header.tex \
- X convsymb.txt convsymb.tex \
- X symboles.txt symboles.tex symb.tex
- X
- X
- XSAVEFILES = $(FILES) $(HEADERS) $(OTHERFILES)
- X
- XKITNAME = "Notation"
- X
- X############################################################
- X# you might want to define the lib path :
- X# do not forget the trailing /
- X# ( the library is the place where the HELPFILE, Heading, fonts etc are)
- X# also you can have default language for input/ouput
- X# define DEFAULT_INPUT_LANGUAGE and DEFAULT_OUPUT_LANGUAGE
- X# value can be:
- X# FRENCH, ENGLISH, GERMAN, ITALIAN, SPANISH, DUTCH
- X# ANSI C/ TURBO C (MSDOS)
- X# to compile with TURBO C or ANSI C, define TURBOC
- XCFLAGS = -DLIB_DIR=\"$(HOME)/echecs/Notation/\" \
- X-DDEFAULT_INPUT_LANGUAGE=FRENCH -DDEFAULT_OUTPUT_LANGUAGE=FRENCH
- XLDFLAGS =
- X
- X
- XLEX= flex
- X
- X#CC= gcc -ansi -pedantic
- X
- X############################################################
- X
- X.KEEPSTATE:
- X
- Xall: notation notation.doc chesssymb.tex
- X
- Xlexer.c: lexer.l chesstype.h
- X $(LEX) -t lexer.l > lexer.c
- X
- Xnotation: $(OBJECTS)
- X $(CC) $(CFLAGS) -o notation $(OBJECTS)
- X
- Xsymboles.txt: chesssymb.def convsymb.txt
- X /lib/cpp -P convsymb.txt| sed -e "s/\\\\//" |\
- X sed -e 's/\"//g' | cat -s > symboles.txt
- X
- Xsymb.tex: chesssymb.def convsymb.tex
- X /lib/cpp -P convsymb.tex | sed -e 's/\\\\/\\/g' |\
- X sed -e 's/\"//g' | cat -s > symb.tex
- Xsymboles.dvi: symboles.tex symb.tex
- X latex symboles.tex
- X
- Xkit : $(SAVEFILES)
- X makekit -n$(KITNAME) $(LIBDIR) $(SAVEFILES) MANIFEST > MANIFEST
- X
- Xshar : $(SAVEFILES)
- X shar -o$(KITNAME).shar $(LIBDIR) $(SAVEFILES)
- X compress -f $(KITNAME).shar
- X
- Xtar : $(SAVEFILES)
- X tar -cvf - $(SAVEFILES) > $(KITNAME).tar
- X compress -f $(KITNAME).tar
- X
- Xzoo : $(SAVEFILES)
- X# chmod +w $(KITNAME).zoo
- X zoo -freshen $(KITNAME).zoo $(SAVEFILES)
- X rm -f $(KITNAME).bak
- X# chmod -w $(KITNAME).zoo
- X
- Xsauve :
- X make zoo
- X# chmod +w $(KITNAME).zoo
- X cp $(KITNAME).zoo $(HOME)/local/sauve
- X# chmod -w $(KITNAME).zoo
- X
- Xinstall: HELPFILE
- X make notation
- X strip notation
- X chmod +x print-ps
- X make notation.doc
- X make chesssymb.txt
- X
- Xhthomas:
- X make install
- X mv notation $(BINDIR)
- X
- Xclean:
- X rm -f notation $(OBJECTS) lexer.c
- X rm -f $(KITNAME).shar[.Z] $(KITNAME).tar[.Z] $(KITNAME)0? MANIFEST
- X
- Xnotation.doc: notation.n
- X nroff -man notation.n > notation.doc
- X
- X
- X# DO NOT DELETE THIS LINE -- make depend depends on it.
- X
- Xdrivers.o: chesstype.h notation.h drivers.h chesssymb.def
- Xlexer.o: chesstype.h notation.h lexer.h chesssymb.def
- Xnotation.o: chesstype.h drivers.h notation.h lexer.h chesssymb.def
- END_OF_FILE
- if test 2915 -ne `wc -c <'Makefile'`; then
- echo shar: \"'Makefile'\" unpacked with wrong size!
- fi
- # end of 'Makefile'
- fi
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(4568 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X** DESCRIPTION
- X This program read chess games, either full algebraic or shortened
- X(ie Nf1-g3 or f1g3 or Ng3) and is able to ouptut the board after any
- Xmove, in ascii form, postscript, or nroff or suitable for some TeX
- Xmacros. Also, it can genearte output for gnuan and the xboard
- Xprogram. It is multi-lingual (european) for piece identification. The
- Xprogram understand french, english, german, spanish dutch and italian
- X(send me piece symbols for other languages dannish, swedish,
- Xrussian... I will incorporate them happily). The program also accept
- Xvariations and is able to handle symbol-comments
- X
- XThis is a freeware program. You have the right to modify it, give it,
- Xprovided you don't modify the copyright notice and my name still
- Xremains. The distribution has 4 shar-type files.
- X
- X** COMPATIBILITY
- X This program is ok on UNIX (Sun Sparc Station and Sun-3). It uses
- Xstandard C, and fonctions declarations are done in both K&R-C and
- XANSI-C. I guess won't be too difficult to compile on a IBM-PC with
- XMSC. (I get to work an older function with TURBO-C).
- X
- X** QUICK USE
- X Anyway, you want to try quickly the program, issue the command
- X"make" in this directory, and then type "notation algebric.txt" to
- Xtest the programm on Kasparov/Karpov game 13 (Lyon, November 1990).
- XRead and modify the makefile for customizing notation to your national
- Xlanguage and library path. If you want a complete manual, read
- Xnotation.doc. To print a postscript file, use "print-ps file"
- X
- X** SOURCES
- X They are posted to "comp.sources.misc". You can also get them by
- Xmail, from "hthomas@irisa.fr". I put them on anonymous ftp on
- Xwuarchive.wustl.edu, (user:anonymous, password:<your address>). The
- Xpath is "pub/Notation.tar.Z". I may submit them to "garbo.uwasa.fi.
- X
- X** IMPORTANT
- X If you want to use PostScript or LaTeX, you need two packages not
- Xprovided here. However, here is a way to get them:
- X
- X**** Postscript:
- X You need the font "Cheq", freely distributed by Adobe. Send a mail
- Xto "ps-file-server@adobe.com" with the body "send Programs
- Xchessfont.ps". For use with "notation", rename the file "Cheq".
- X
- X------------------------------------------------------------------
- Xchessfont.ps 58548 Jun 22 1989
- X This is the Adobe chess font "Cheq", created by John Renner. It
- X is an ASCII downloadable version of the font that is not in any
- X particular font format for a specific platform. See also
- X "chessfontUNIX.shar" and "chessfontMAC.shar" for the font bundled
- X with other useful files like screen fonts and AFM files. If you
- X just want the font, it is available in this file separately for
- X convenience.
- X------------------------------------------------------------------
- X
- X**** LaTeX:
- X You need the chess fonts designed by Piet Tutalaers
- X"rcpt@urc.tue.nl". The complete distribution is available
- X
- X-- by ftp : on sol.cs.ruu.nl (131.211.80.5) with path TEX/chess.tar.Z
- X(please restrict access to weekends or evening/night (i.e. between
- Xabout 2000 and 0.900 UTC)).
- X
- X------------------------------------------------------------------
- X-rw-r--r-- 1 piet staff 2984 Dec 3 10:11 chess.README
- X-rwxr--r-- 1 piet staff 129679 Dec 3 15:57 chess.tar.Z
- X------------------------------------------------------------------
- X
- X-- by e-mail : send the following message to
- Xmail-server@cs..ruu.nl (or uunet!mcsun!hp4nl!ruuinf):
- X
- Xbegin
- Xpath john@highbrown.edu
- Xsend TEX/chess.tar.Z
- Xend
- X
- XThe path command can be deleted if we receive a valid from address in
- Xyour message. If this is the first time you use the mail server, we
- Xsuggest you first issue the request:
- Xsend help
- X
- X
- X** DOCUMENTATION
- X See the file notation.doc for any info
- X
- X** COPYRIGHT
- X
- X This is a freeware program. Commercial use is prohibited. It is free
- Xfor non-commercial use. You have the right to modify it, give it,
- Xprovided you don't modify the copyright notice and my name still
- Xremains clearly indicated. For the others packages (Cheq and chess
- Xfont) refer to the original copyright notice.
- X
- X** USER FEEDBACK
- X
- X If you're happy with this program, let me know. Also, I'm interested
- Xin any advice to a novice player of chess. I would appreciate if
- Xsomeone might give me advices obout openings: overview, what they are
- Xfor, which ones are not too risky for a novice etc... Thanks.
- X
- X
- X** MODIFICATIONS
- X
- X I hope the program to be clear enough to be easily modified. Anyway,
- XI would like to centralize modification, in order to manage an
- Xup-to-date version. So send me the modification, in forms of diff
- Xfiles, if possible, along with the version number of the program.
- END_OF_FILE
- if test 4568 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'TODO' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'TODO'\"
- else
- echo shar: Extracting \"'TODO'\" \(372 characters\)
- sed "s/^X//" >'TODO' <<'END_OF_FILE'
- XThings to do:
- X - command line specification of chess symbols for a new language
- X - to have configuration file
- X - automatically add sufixes (.tex, ps, .asc, .roff xboard.save ...) to
- Xoutput file
- X - detect check
- X - a binary save format, allowing another program to interactively
- Xreplay the game (isn't there a commercial program called chessbase to
- Xdo the same thing :-) ?)
- END_OF_FILE
- if test 372 -ne `wc -c <'TODO'`; then
- echo shar: \"'TODO'\" unpacked with wrong size!
- fi
- # end of 'TODO'
- fi
- if test -f 'algebric.txt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'algebric.txt'\"
- else
- echo shar: Extracting \"'algebric.txt'\" \(958 characters\)
- sed "s/^X//" >'algebric.txt' <<'END_OF_FILE'
- X
- X[WORLD CHESS CHAMPIONSHIP]
- X[GAME 13 Adjourned]
- X[November 24, 1990]
- X
- X[ KARPOV KASPAROV]
- X 1. d2-d4 g8-f6
- X 2. c2-c4 g7-g6
- X 3. b1-c3 d7-d5
- X 4. c4Xd5 f6Xd5
- X 5. e2-e4 d5Xc3
- X 6. b2Xc3 f8-g7
- X 7. c1-e3 c7-c5
- X 8. d1-d2 O-O
- X 9. a1-c1 d8-a5
- X10. g1-f3 e7-e6
- X11. d4-d5 e6Xd5
- X12. e4Xd5 f8-e8
- X13. f1-e2 c8-f5
- X14. O-O b8-d7
- X15. h2-h3 d7-b6
- X16. g2-g4 f5-d7
- X17. c3-c4 a5Xd2
- X18. f3Xd2 b6-a4
- X19. e2-f3 a4-c3
- X20. c1Xc3 g7Xc3
- X21. d2-e4 e8Xe4
- X22. f3Xe4 a8-e8
- X23. e4-d3 b7-b6
- X24. g1-g2 f7-f5
- X25. g4Xf5 d7Xf5
- X26. d3Xf5 g6Xf5
- X27. f1-d1 g8-f7
- X28. d1-d3 c3-f6
- X29. d3-a3 a7-a5
- X30. a3-b3 f6-d8
- X31. b3-c3 d8-c7
- X32. a2-a4 f7-f6
- X33. g2-f1 f5-f4
- X34. e3-c1 f6-f5
- X35. c3-c2 e8-g8
- X36. c2-e2 c7-e5
- X37. c1-b2 e5-d4
- X38. b2Xd4 c5Xd4
- X39. e2-e7 d4-d3
- X40. f1-e1 g8-c8
- X41. e1-d2 c8Xc4
- X
- X
- X
- END_OF_FILE
- if test 958 -ne `wc -c <'algebric.txt'`; then
- echo shar: \"'algebric.txt'\" unpacked with wrong size!
- fi
- # end of 'algebric.txt'
- fi
- if test -f 'boudy.txt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'boudy.txt'\"
- else
- echo shar: Extracting \"'boudy.txt'\" \(864 characters\)
- sed "s/^X//" >'boudy.txt' <<'END_OF_FILE'
- X@title{Boudy vs Szabo, Varna 1979}
- X@subtitle{See Informant XXVII game 452}
- X@language{french}
- X1. e4 c5
- X2 Cf3 Cc6
- X3 d4 cd4
- X4 Cd4 Cf6
- X5 Cc3 d6
- X6. f4 a6
- X7. Cc6 bc6
- X8. e5 Cd7
- X9. ed6 ed6
- X10. Df3 d5
- X11. Fd2 Fd6
- X12. o-o-o 0-0
- X13. g4 Fb7 { Tb8 !? ~ }
- X14. Tg1 Te8
- X15. g5 f5 !? {Cc5}
- X16. g6 h6
- X17. Fd3 ?! { Fh3! +_} Tf8
- X18. Dh3 Df6
- X19. Tg5 Cc5
- X20. Ff5 Fc8!
- X21. Fc8 Tac8
- X22. Tg4 Tb8 =~
- X23. Tf1 Ce4
- X24. Fe1 @showboard Tb2
- X25. Rb2 { Ce4 de4 26 Fc3 Fa3! 27. Ff6 Tb3 _+ $end } Fa3!
- X26. Ra3 {26 Ra1 Tb8 -+} Tb8 -+
- X27. Ce4 De7 ?? {27. ... Db2 28. Ra4 Da2 29. Da3 Dc2 30. Ra5 Tb5
- X 31. Ra6 De4 /\[De8a8 -+]}
- X28. Cd6! { 28. Ra4 De4 -+} Dd6
- X29. Ra4 c5
- X30. Th4 { $bei 30. Tg1 c4 31 Dc3 Dd7 32. Ra3 Dd6 33 Dd4 -+ } c4
- X31. Dc3 Dd7
- X32. Ra3 De7
- X33. Db4! +- Tb4
- X34. Fb4 Dh4
- X35. Te1 Dd8 []
- X36. c3! a5
- X37. Fc5 ||
- X
- X@score{White won} [ somewhat luckily in the end at move 75.]
- X
- END_OF_FILE
- if test 864 -ne `wc -c <'boudy.txt'`; then
- echo shar: \"'boudy.txt'\" unpacked with wrong size!
- fi
- # end of 'boudy.txt'
- fi
- if test -f 'chesssymb.def' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'chesssymb.def'\"
- else
- echo shar: Extracting \"'chesssymb.def'\" \(4754 characters\)
- sed "s/^X//" >'chesssymb.def' <<'END_OF_FILE'
- X/*
- X chess symbols : arguments (all are strings)
- X 0: ident
- X 1: ascii name
- X 2: ascii abbrev
- X 3: TeX name
- X 4: Postscript name (Mr. Walker font)
- X 5: english text
- X 6: french text
- X */
- X
- XCHESSSYMB ( COM_CHK, "+", "+" , "+", "",
- X "check",
- X "echec" )
- XCHESSSYMB ( COM_DCK, "++", "++" , "++", "",
- X "double check",
- X "echec double" )
- XCHESSSYMB ( COM_WSB, "$wsb", "+=", "\\COMwsb", "",
- X "white stands lightly better",
- X "les blancs ont un jeu un peu meilleur" )
- XCHESSSYMB ( COM_BSB, "$bsb", "=+", "\\COMbsb", "",
- X "black stands lightly better",
- X "les noirs ont un jeu un peu meilleur" )
- XCHESSSYMB ( COM_WBE, "$wbe", "+_", "\\COMwbe", "",
- X "white has the upper hand",
- X "les blancs ont le meilleur jeu" )
- XCHESSSYMB ( COM_BBE, "$bbe", "_+", "\\COMbbe", "",
- X "black has the upper hand",
- X "les noirs ont le meilleur jeu" )
- XCHESSSYMB ( COM_WDA, "$wda", "+-", "\\COMwda", "",
- X "white has a decisive advantage",
- X "les blancs ont un avantage de'cisif" )
- XCHESSSYMB ( COM_BDA, "$bda", "-+", "\\COMwda", "",
- X "black has a decisive advantage",
- X "les noirs ont un avantage de'cisif" )
- XCHESSSYMB ( COM_EQA, "=" , "=", "\\COMlev", "",
- X "even",
- X "e'gal" )
- XCHESSSYMB ( COM_UCR, "$ucr", "~" , "\\COMucr", "",
- X "unclear",
- X "incertain" )
- XCHESSSYMB ( COM_WCO, "$wco", "=~" , "\\COMwco", "",
- X "with compensation for the material",
- X "avec compensation pour le mate'riel" )
- XCHESSSYMB ( COM_DAD, "$dad", "(^)" , "\\COMdad", "",
- X "development advantage",
- X "avance de de'veloppement" )
- XCHESSSYMB ( COM_SPA, "$spa", "()" , "\\COMspa", "",
- X "greater space advantage",
- X "grand avantage d'espace" )
- XCHESSSYMB ( COM_WTA, "$wta", "->" , "\\COMwta", "",
- X "with attack",
- X "avec attaque" )
- XCHESSSYMB ( COM_WIN, "$win", "|^" , "\\COMwin", "",
- X "with initiative",
- X "avec initiative" )
- XCHESSSYMB ( COM_WCP, "$wcp", "<->" , "\\COMwcp", "",
- X "with counter-play",
- X "avec contre-attaque" )
- XCHESSSYMB ( COM_ZUG, "$zug", "(.)" , "\\COMzug", "",
- X "zugzwang",
- X "zug zwang" )
- XCHESSSYMB ( COM_MAT, "#", "#" , "\\#", "",
- X "mate",
- X "mat" )
- XCHESSSYMB ( COM_VGM, "!", "!" , "!", "",
- X "very good move",
- X "un tre`s bon coup" )
- XCHESSSYMB ( COM_VBM, "?", "?" , "?", "",
- X "very bad move",
- X "un tre`s mauvais coup" )
- XCHESSSYMB ( COM_EXM, "!!", "!!" , "!!", "",
- X "excellent move",
- X "un excellent coup" )
- XCHESSSYMB ( COM_MIS, "??", "??" , "??", "",
- X "a mistake",
- X "un coup faible" )
- XCHESSSYMB ( COM_MDA, "!?", "!?" , "!?", "",
- X "a move deserving attention",
- X "un coup qui me'rite l'attention" )
- XCHESSSYMB ( COM_DUM, "?!", "?!" , "?!", "",
- X "a dubious move",
- X "un coup d'une valeur douteuse" )
- XCHESSSYMB ( COM_WTI, "$wti", "/\\" , "\\COMwti", "",
- X "with the idea...",
- X "avec l'ide'e..." )
- XCHESSSYMB ( COM_OLM, "$olm", "[]" , "\\COMolm", "",
- X "only move",
- X "seul coup possible" )
- XCHESSSYMB ( COM_BEI, "$bei", "^_" , "\\COMbei", "",
- X "better is",
- X "est meilleur" )
- XCHESSSYMB ( COM_FIL, "$fil", "<=>" , "\\COMfil", "",
- X "file",
- X "colonne" )
- XCHESSSYMB ( COM_DIA, "$dia", "/^" , "\\COMdia", "",
- X "diagonal",
- X "diagonale" )
- XCHESSSYMB ( COM_CNT, "$cnt", "[+]" , "\\COMcnt", "",
- X "center",
- X "centre" )
- XCHESSSYMB ( COM_KGS, "$kgs", ">>" , "\\COMkgs", "",
- X "king's side",
- X "aile roi" )
- XCHESSSYMB ( COM_QNS, "$qns", "<<" , "\\COMqns", "",
- X "queen's side",
- X "aile reine" )
- XCHESSSYMB ( COM_WKP, "$wkp", "><" , "\\COMwkp", "",
- X "weak point",
- X "point faigle" )
- XCHESSSYMB ( COM_END, "$end", "_|_" , "\\COMend", "",
- X "ending",
- X "finale" )
- XCHESSSYMB ( COM_POB, "$pob", "==" , "\\COMpob", "",
- X "pair of bishops",
- X "paire de fous" )
- XCHESSSYMB ( COM_OPC, "$opc", "=#" , "\\COMopc", "",
- X "bishops of opposite colors",
- X "fous de couleurs oppose'es" )
- XCHESSSYMB ( COM_SCB, "$scb", "##" , "\\COMscb", "",
- X "same coloured bishops",
- X "fous de me^me couleur" )
- XCHESSSYMB ( COM_UNP, "$unp", "oo" , "\\COMunp", "",
- X "united pawns",
- X "pions unis" )
- XCHESSSYMB ( COM_SEP, "$sep", "o..o" , "\\COMsep", "",
- X "separated pawns",
- X "pions se'pare's" )
- XCHESSSYMB ( COM_DOP, "$dop", "o/o" , "\\COMdop", "",
- X "doubled pawns",
- X "pions double's" )
- XCHESSSYMB ( COM_TIM, "$tim", "(+)" , "\\COMtim", "",
- X "time",
- X "temps" )
- XCHESSSYMB ( COM_WIT, "$wit", "|_" , "\\COMwit", "",
- X "with",
- X "avec" )
- XCHESSSYMB ( COM_WTO, "$wto", "_|" , "\\COMwto", "",
- X "without",
- X "sans" )
- XCHESSSYMB ( COM_ETC, "etc", "etc" , "{etc}", "",
- X "etc",
- X "etc" )
- XCHESSSYMB ( COM_ETD, "||", "||" , "\\COMetc", "",
- X "etc",
- X "etc" )
- XCHESSSYMB ( COM_SEE, "$see", "" , "\\COMsee", "",
- X "see",
- X "voir" )
- XCHESSSYMB ( COM_ENP, "ep", "ep" , "{ep}", "",
- X "en passant",
- X "en passant" )
- END_OF_FILE
- if test 4754 -ne `wc -c <'chesssymb.def'`; then
- echo shar: \"'chesssymb.def'\" unpacked with wrong size!
- fi
- # end of 'chesssymb.def'
- fi
- if test -f 'chesstype.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'chesstype.h'\"
- else
- echo shar: Extracting \"'chesstype.h'\" \(3150 characters\)
- sed "s/^X//" >'chesstype.h' <<'END_OF_FILE'
- X/*
- X Notation program
- X @(#)chesstype.h 3.1 (C) Henry Thomas\tVersion 3.1\tDated 6/16/91
- X */
- X
- X/* types definition */
- X#ifndef _HEADERS_TYPES
- X#define _HEADERS_TYPES
- X
- X#define FALSE 0
- X#define TRUE 1
- X
- X#ifndef NULL
- X#define NULL ((char *) 0)
- X#endif
- X
- X#define MAX(a,b) ((a)>(b)?(a):(b))
- X#define MIN(a,b) ((a)<(b)?(a):(b))
- X#define ABS(a) ((a)>=0?(a):(-(a)))
- X#define SIGN(a) ((a)>=0?(1):-1)
- X
- X#define DUMMYCHAR '$'
- X#define MAXTOKLEN 1024
- X
- X
- X/* max number of move for displaying board */
- X#define NB_MOVE_TO_DISP 128
- X
- X/* debugging help */
- X#ifdef DEBUG
- X#define MESSAGE(A) (void) fprintf A
- X#define ACTION(A) A
- X#else
- X#define MESSAGE(A)
- X#define ACTION(A)
- X#endif
- X
- X/* output move format */
- X
- X#define ALGEBRAIC 0
- X#define SHORTENED 1
- X
- X/* text type */
- X#define T_TEXT 1
- X#define T_COMMENT 2
- X#define T_TITLE 3
- X#define T_SUBTITLE 4
- X#define T_SCORE 5
- X
- X/* -------------------------------------------- */
- X/* chess data structures */
- X/* -------------------------------------------- */
- X
- X#define NUMPIECES 7
- X
- X#define KING 1
- X#define QUEEN 2
- X#define ROOK 3
- X#define BISHOP 4
- X#define KNIGHT 5
- X#define PAWN 6
- X
- X#define VOID 0
- X#define WHITE 1
- X#define BLACK 2
- X
- X/* board and move representation */
- X/* board size */
- X#define SIZE 10
- X
- X/* ---- structure to represent the game ---- */
- Xtypedef struct {
- X
- X /* board definition */
- X int board[SIZE][SIZE];
- X int color[SIZE][SIZE];
- X
- X} game ;
- X/* ---- end of structure ---- */
- X
- X#define GULL (game *) 0
- X
- X/* french(roque) == english(castling) */
- X
- X#define MOVE 1 /* un mouvement */
- X#define PRISE 2 /* une prise */
- X#define GRANDROQUE 3 /* grand roque */
- X#define PETITROQUE 4 /* petit roque */
- X#define EN_PASSANT 5 /* prise en passant */
- X#define PROMOTION 6 /* promotion */
- X#define PROM_ET_PRISE 7 /* promotion + capture */
- X
- X#define SHORT_COMMENT_LEN 4
- X
- X/* structure used to describe the current move */
- Xstruct deplace {
- X /* system zone */
- X int uid ; /* node id */
- X
- X /* links used to chain moves */
- X struct deplace * next ; /* next move */
- X struct deplace * prev ; /* previous move */
- X struct deplace * sub ; /* variation */
- X
- X /* user zone */
- X int move ; /* number of the move */
- X int whiteturn ; /* boolean to tell white's turn */
- X
- X int type; /* type of move: MOVE, PRISE, etc.. */
- X int piece; /* type of the piece */
- X
- X int fromcol, fromlig; /* from position */
- X int tocol, tolig ; /* destination */
- X
- X int prise; /* captured piece */
- X int promotion; /* name of the pice the pawn is promoted to */
- X
- X int is_check ; /* if does the move provides check ?*/
- X
- X char comment[SHORT_COMMENT_LEN]; /* short text comment */
- X char * text ; /* long text comment */
- X
- X
- X} ;
- Xtypedef struct deplace depl ;
- X
- X#define MULL (depl *) 0
- X
- X#define CURCOLOR(M) (((M)->whiteturn)?(WHITE):(BLACK))
- X#define OPPCOLOR(M) (((M)->whiteturn)?(BLACK):(WHITE))
- X
- X
- X/* structure used to hold a complete play
- X this structure is
- X - an initial board
- X - a chain of moves
- X moves are applied to the board, and coan also be undone
- X */
- Xtypedef struct {
- X game * initial;
- X depl * chain ;
- X} play ;
- X
- X
- X/* end headers */
- X#endif
- END_OF_FILE
- if test 3150 -ne `wc -c <'chesstype.h'`; then
- echo shar: \"'chesstype.h'\" unpacked with wrong size!
- fi
- # end of 'chesstype.h'
- fi
- if test -f 'convsymb.tex' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'convsymb.tex'\"
- else
- echo shar: Extracting \"'convsymb.tex'\" \(149 characters\)
- sed "s/^X//" >'convsymb.tex' <<'END_OF_FILE'
- X#define CHESSSYMB(LET,LASC,SASC,TEX,PS,ENG,FRA)\
- XENG & \verb;LASC; & \verb;SASC; & TEX & \verb;TEX; \cr
- X#include "chesssymb.def"
- X#undef CHESSSYMB
- END_OF_FILE
- if test 149 -ne `wc -c <'convsymb.tex'`; then
- echo shar: \"'convsymb.tex'\" unpacked with wrong size!
- fi
- # end of 'convsymb.tex'
- fi
- if test -f 'convsymb.txt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'convsymb.txt'\"
- else
- echo shar: Extracting \"'convsymb.txt'\" \(195 characters\)
- sed "s/^X//" >'convsymb.txt' <<'END_OF_FILE'
- Xcomment shorthand english translation
- X------------------------------------------------
- X#define CHESSSYMB(LET,LASC,SASC,TEX,PS,ENG,FRA)\
- XLASC SASC ENG
- X#include "chesssymb.def"
- X#undef CHESSSYMB
- END_OF_FILE
- if test 195 -ne `wc -c <'convsymb.txt'`; then
- echo shar: \"'convsymb.txt'\" unpacked with wrong size!
- fi
- # end of 'convsymb.txt'
- fi
- if test -f 'drivers.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'drivers.h'\"
- else
- echo shar: Extracting \"'drivers.h'\" \(2470 characters\)
- sed "s/^X//" >'drivers.h' <<'END_OF_FILE'
- X/*
- X Notation program
- X @(#)drivers.h 3.1 (C) Henry Thomas\tVersion 3.1\tDated 6/16/91
- X */
- X/* headers for output drivers */
- X#ifndef _HEADERS_DRIVERS
- X#define HEADERS_DRIVERS
- X
- X
- X#define D_ASCII 0
- X#define D_POST 1
- X#define D_TEX 2
- X#define D_ROFF 3
- X#define D_XCHESS 4
- X#define D_GNU 5
- X
- X#define NB_DRIVER 6
- X
- X/* variation convention */
- X#define VARIATION_IN 0
- X#define VARIATION_OUT 1
- X
- X
- X#define PS_HEADER "Header.ps"
- X#define PS_FOOTER "Footer.ps"
- X#define TEX_HEADER "Header.tex"
- X
- X
- X/* output buffers */
- X#define TAMPON 256
- X
- Xtypedef struct {
- X
- X /* type of driver */
- X int type ;
- X
- X /* output_file */
- X FILE *outfile ;
- X /* these booleans control the output format */
- X int print_move ; /* move numbering */
- X int print_piece ; /* print piece name */
- X int print_pawn ; /* print the PAWN name */
- X int roque_alg ; /* roque in algebraic form Ke1g1 or O-O */
- X int print_liaison ; /* print the - or x in move output */
- X int only_board ;
- X int variation ; /* variation level */
- X int print_headers ; /* include the header/footer file */
- X
- X /* boolean to print the coordinates in ascii output of board */
- X int coordinates ;
- X int output_move_format ;
- X
- X char *out_table; /* translation table */
- X
- X /* procedures */
- X void (*out_init)() ;
- X void (*out_move)() ;
- X void (*out_variation)() ;
- X void (*out_text)() ;
- X void (*out_board)() ;
- X void (*out_end)() ;
- X
- X /* temp vars used by move buffering */
- X
- X int iswhiteturn ; /*= FALSE */
- X int interrupt ; /*= FALSE */
- X
- X char move_buffer[TAMPON] /*= ""*/ ;
- X char white_buffer[TAMPON] /*= ""*/ ;
- X char black_buffer[TAMPON] /*= ""*/ ;
- X
- X
- X} format ;
- X
- X
- X/* fonctions ----------------- */
- X
- X#ifdef __STDC__
- X
- Xextern void output_init(format *dr);
- Xextern void output_move(format *dr, depl *d);
- Xextern void output_variation(format *dr, int inout);
- Xextern void output_text(format *dr, int type, char *string, int code);
- Xextern void output_board(format *dr, game *g);
- Xextern void output_end(format *dr);
- X
- Xextern format *new_driver(void);
- Xextern void init_driver(format *dr, int driver);
- X
- X#else
- X
- Xextern void output_init(/*format *dr*/);
- Xextern void output_move(/*format *dr, depl *d*/);
- Xextern void output_variation(/*format *dr, int inout*/);
- Xextern void output_text(/*format *dr, int type, char *string, int code*/);
- Xextern void output_board(/*format *dr, game *g*/);
- Xextern void output_end(/*format *dr*/);
- X
- Xextern format *new_driver(/*void*/);
- Xextern void init_driver(/*format *dr, int driver*/);
- X#endif
- X
- X#endif
- END_OF_FILE
- if test 2470 -ne `wc -c <'drivers.h'`; then
- echo shar: \"'drivers.h'\" unpacked with wrong size!
- fi
- # end of 'drivers.h'
- fi
- if test -f 'keywords.txt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'keywords.txt'\"
- else
- echo shar: Extracting \"'keywords.txt'\" \(256 characters\)
- sed "s/^X//" >'keywords.txt' <<'END_OF_FILE'
- X[Example of keywords use]
- X[absolutely non-sense game]
- Xe2-e4 c7c6
- X@showboard
- X@clearboard
- X@showboard
- X@configwhite
- X d4 Nf6
- X Nc3 @showboard d5
- X@configblack
- X Kg8
- X@startplay
- X@whitesmove
- XNc3-b1
- X@showboard
- X@blacksmove
- XRg8-g7 @showboard d5-d6
- XRg7-f6
- X
- X@null
- X
- X
- X
- END_OF_FILE
- if test 256 -ne `wc -c <'keywords.txt'`; then
- echo shar: \"'keywords.txt'\" unpacked with wrong size!
- fi
- # end of 'keywords.txt'
- fi
- if test -f 'lexer.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lexer.h'\"
- else
- echo shar: Extracting \"'lexer.h'\" \(309 characters\)
- sed "s/^X//" >'lexer.h' <<'END_OF_FILE'
- X/*
- X Notation program
- X @(#)lexer.h 3.1 (C) Henry Thomas\tVersion 3.1\tDated 6/16/91
- X */
- X#ifndef _HEADER_LEXER
- X#define _HEADER_LEXER
- X
- Xextern int column;
- Xextern int lineno;
- X
- Xextern FILE * yyin;
- Xextern FILE * yyout;
- X
- X#ifdef __STDC__
- Xextern int yylex(/*void*/);
- X#else
- Xextern int yylex(/*void*/);
- X#endif
- X
- X
- X#endif
- END_OF_FILE
- if test 309 -ne `wc -c <'lexer.h'`; then
- echo shar: \"'lexer.h'\" unpacked with wrong size!
- fi
- # end of 'lexer.h'
- fi
- if test -f 'lexer.l' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lexer.l'\"
- else
- echo shar: Extracting \"'lexer.l'\" \(3979 characters\)
- sed "s/^X//" >'lexer.l' <<'END_OF_FILE'
- X/* DO NOT REMOVE THIS LINE */
- X/* */
- X/* Notation program */
- X/* @(#)lexer.l 3.1 (C) Henry Thomas\tVersion 3.1\tDated 6/16/91 */
- X/* */
- X%{
- X#include <stdio.h>
- X
- X#include "chesstype.h"
- X#include"notation.h"
- X
- X#define NCURLINE 1024
- Xchar curline [NCURLINE] ;
- X
- X#define LARGE_BUF 4096
- Xstatic char commbuf[LARGE_BUF];
- X
- Xint column = 0;
- Xint lineno = 1;
- X
- X#ifdef __STDC__
- Xextern void count(void);
- Xextern char * comment(int closing);
- X#else
- Xextern void count();
- Xextern char * comment();
- X#endif
- X
- X%}
- X
- XLEXSHORT [-+!?#]
- XLEXLONG [-+=/\\\^\&\*\~<>_|#]
- X
- X%%
- X[Oo0]\-?[Oo0](\-?[Oo0])? { /* roque */ ; parse_roque(yytext); }
- X[0-9]+[\.]? { /* move number */ parse_number(yytext); }
- X[A-Z]?([a-z]([1-8])?)?[-xX]?[a-z][1-8] { /* move */
- X (void) parse_move(yytext);
- X /*; fprintf(stderr,"%s, ",yytext);*/
- X}
- X
- X
- X{LEXLONG}{LEXLONG}{LEXLONG} { /* comment */ ;
- X parse_comment(yytext); }
- X{LEXLONG}{LEXLONG} { /* comment */ ;
- X parse_comment(yytext); }
- X{LEXSHORT}{LEXSHORT} { /* comment */ ;
- X parse_comment(yytext); }
- X{LEXLONG} { /* comment */ ;
- X parse_comment(yytext); }
- X{LEXSHORT} { /* comment */ ; parse_comment(yytext); }
- X"\(\.\)" { /* comment */ ; parse_comment(yytext); }
- X"\(\*\)" { /* comment */ ; parse_comment(yytext); }
- X"\(\^\)" { /* comment */ ; parse_comment(yytext); }
- X"\[\+\]" { /* comment */ ; parse_comment(yytext); }
- X"\(\)" { /* comment */ ; parse_comment(yytext); }
- X"\[\]" { /* comment */ ; parse_comment(yytext); }
- X"o\.\.o" { /* comment */ ; parse_comment(yytext); }
- X"oo" { /* comment */ ; parse_comment(yytext); }
- X"o/o" { /* comment */ ; parse_comment(yytext); }
- X"@\^" { /* comment */ ; parse_comment(yytext); }
- X"etc" { /* comment */ ; parse_comment("etc"); }
- X"ep"|"e\.p\." { /* comment */ ; parse_comment("ep"); }
- X\$[a-z][a-z][a-z] { /* game comment */ ; parse_comment(yytext); }
- X@[a-z]+\{ { /* keyword with arg */
- X yytext[yyleng -1] = '\0' ;
- X parse_keyword(yytext, comment('}'));
- X}
- X@[a-z]+ { /* keyword without arg */
- X parse_keyword(yytext,NULL); }
- X"\[" { parse_text(comment(']')); }
- X"\(" { parse_text(comment(')')); }
- X"\{" { /* enter variation */ ; enter_variation(); }
- X"\}" { /* close variation */ ; exit_variation(); }
- X[\,;\.] { /* skip , ; */ ; }
- X[ \t\v\n\f] { /* skip blanks */; }
- X. { /* ignore bad characters */ (void) fprintf(stderr,"I don't understand: %s\n",yytext);}
- X%%
- X
- X#ifdef FLEX_SCANNER
- X#undef yywrap
- X#endif
- X#ifdef __STDC__
- Xint yywrap(void)
- X#else
- Xint yywrap()
- X#endif
- X{
- X return(1);
- X}
- X
- X
- X/* this procedure store comments in the text array commbuf
- X Escape char are allowed for putting the end-of-comment symbol
- X in the buffer
- X */
- X#ifdef __STDC__
- Xstatic char * comment(int closing)
- X#else
- Xstatic char * comment(closing)
- X char closing;
- X#endif
- X{
- X register char c;
- X register int i=0;
- X
- X while ( ((c = input()) != closing) && (c != 0) && (c != EOF)) {
- X commbuf[i] = c;
- X if (i <LARGE_BUF) i++ ;
- X
- X if (c == '\\') {
- X c = input() ;
- X if (c == closing)
- X commbuf[i-1] = c;
- X else
- X unput(c);
- X }
- X }
- X commbuf[i] = '\0' ;
- X return(commbuf);
- X}
- X
- X#ifdef __STDC__
- Xstatic void count(void)
- X#else
- Xstatic void count()
- X#endif
- X{
- X register int i;
- X register int k;
- X
- X for (i = 0; yytext[i] != '\0'; i++) {
- X if (yytext[i] == '\n') {
- X column = 0;
- X for (k = 0 ; k< NCURLINE; k++) /*PANDORE*/
- X curline[k] = ' '; /*PANDORE*/
- X lineno++;
- X }
- X else if (yytext[i] == '\t') {
- X column += 8 - (column % 8);
- X curline[column] = yytext[i];
- X } else {
- X column++;
- X curline[column] = yytext[i];
- X }
- X curline[column+1]= '\0' ;
- X }
- X /*ECHO;*/
- X}
- END_OF_FILE
- if test 3979 -ne `wc -c <'lexer.l'`; then
- echo shar: \"'lexer.l'\" unpacked with wrong size!
- fi
- # end of 'lexer.l'
- fi
- if test -f 'notation.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'notation.h'\"
- else
- echo shar: Extracting \"'notation.h'\" \(5592 characters\)
- sed "s/^X//" >'notation.h' <<'END_OF_FILE'
- X/*
- X Notation program
- X @(#)notation.h 3.1 (C) Henry Thomas\tVersion 3.1\tDated 6/16/91
- X */
- X#ifndef _NOTATION_HEADERS
- X#define _NOTATION_HEADERS
- X
- X
- X/* ---- KEYWORDS ---- */
- X
- X/* prefix for keywords */
- X#define PREFIX '@'
- X
- X
- X#define START 0
- X#define CLEAR 1
- X#define SHOWBOARD 2
- X#define TOWHITE 3
- X#define TOBLACK 4
- X#define CONFIGWH 5
- X#define CONFIGBL 6
- X#define DEFAULTP 7
- X#define TITLE 8
- X#define SUBTITLE 9
- X#define SCORE 10
- X#define LANGUE 11
- X#define SPECIAL 12
- X#define KNULL 13
- X
- X#define NBKEYWORD (KNULL+1)
- X
- X
- X/* ---- LANGUAGES ---- */
- X
- X#define FRENCH 0
- X#define ENGLISH 1
- X#define ITALIAN 2
- X#define SPANISH 3
- X#define GERMAN 4
- X#define DUTCH 5
- X#define CZECH 6
- X#define HUNGARIAN 7
- X#define POLISH 8
- X#define ROMANIAN 9
- X#define FIDE 10
- X
- X#define USERDEF 11
- X
- X#define NBLANGUAGES (USERDEF+0)
- X
- X#ifndef DEFAULT_INPUT_LANGUAGE
- X#define DEFAULT_INPUT_LANGUAGE FRENCH
- X#endif
- X
- X#ifndef DEFAULT_OUTPUT_LANGUAGE
- X#define DEFAULT_OUTPUT_LANGUAGE FRENCH
- X#endif
- X
- X
- X/* a convenient way to get a value for NUM_COMMENT
- X look at GNU-CC source, it's full of *neat* tricks
- X */
- X
- X#define CHESSSYMB(LET,LASC,SASC,TEX,PS,ENG,FRA) LET,
- X
- Xenum com_code {
- X#include "chesssymb.def"
- X LAST_UNUSED_NUM_COM_CODE
- X };
- X#undef CHESSSYMB
- X
- X#define NUM_COM_CODE ((int) LAST_UNUSED_NUM_COM_CODE)
- X
- X/* ---- MISC TABLES ---- */
- X
- X/* roque ascii table */
- X#define NBROQUE 6
- X#define SPETITROQUE 0
- X#define SGRANDROQUE 1
- X
- X
- X/* ---- DRIVERS ---- */
- X
- X/* output drivers name table */
- X#define DEFAULT_DRIVER D_ASCII
- X
- X/* ---- IO ---- */
- X
- X#ifndef LIB_DIR
- X#define LIB_DIR "./lib/"
- X#endif
- X
- X#define HELP_FILE "HELPFILE"
- X
- Xextern FILE * infile;
- X
- X/* ------------- service routines -------------------*/
- X
- X/* Output an error message and exit */
- X#define fatal(A) (void) fprintf A , close_files() , exit(1)
- X
- X/* Output an error message and set the error flag */
- X#define error(A) (void) fprintf A , error_flag = TRUE , (void)fflush(stderr)
- X
- X/* Output an error message and set the error flag */
- X#define message(A) (void) fprintf A
- X
- X#define MALLOC(T) (T *)malloc((unsigned)sizeof(T))
- X#define ALLOCP(P) if ( (P) == NULL ) { fatal(("malloc failed")) ; };
- X
- X/* ------- conversion of input character --------------------- */
- X
- X#define lettertocol(c) ((c)-'a'+1)
- X#define lettertolig(c) ((c)-'1'+1)
- X#define coltoletter(n) ((n)-1+'a')
- X#define ligtoletter(n) ((n)-1+'1')
- X
- X
- X/* ------- variables and functions --------------------------- */
- Xextern char *version_string;
- Xextern int configuring;
- Xextern int configside;
- Xextern char *in_table;
- Xextern char *out_table;
- Xextern char *c_roque[];
- Xextern char *c_en_passant[];
- Xextern char c_prise;
- Xextern char *c_comments[];
- Xextern int error_flag;
- X
- Xextern char *com_short[];
- Xextern char *com_long[];
- X
- X/* ---------- service routines ---------- */
- X
- X#ifdef __STDC__
- Xextern void clear_board(game *g);
- Xextern game *new_board(void);
- Xextern game *copy_board(game *from, game *to);
- Xextern void init_board(game *tgm);
- Xextern depl *new_move(void);
- Xextern void init_move(depl *m);
- Xextern depl *copy_move(depl *from, depl *to);
- Xextern void enter_variation(void);
- Xextern void exit_variation(void);
- X#else
- Xextern void clear_board(/*game *g*/);
- Xextern game *new_board(/*void*/);
- Xextern game *copy_board(/*game *from, game *to*/);
- Xextern void init_board(/*game *tgm*/);
- Xextern depl *new_move(/*void*/);
- Xextern void init_move(/*depl *m*/);
- Xextern depl *copy_move(/*depl *from, depl *to*/);
- Xextern void enter_variation(/*void*/);
- Xextern void exit_variation(/*void*/);
- X#endif
- X
- X/* ------ parse and analysis routines ------ */
- X
- X#ifdef __STDC__
- Xextern int in_board(int l, int c);
- Xextern int path_free(int l1, int c1, int l2, int c2);
- Xextern int check_roque(void);
- Xextern int guess_piece(void);
- Xextern int guess_depl(int nb, int tab[][2], int *pl1, int *pc1, int l2, int c2, int path);
- Xextern int ambiguity(int frompiece, int l2, int c2);
- Xextern int check_move(depl *m);
- Xextern int guess_move(void);
- Xextern int clear_pos(int lig, int col);
- Xextern int configure(void);
- Xextern int execute_move(void);
- Xextern int typechar(char c);
- Xextern int execute(int num, char c);
- Xextern int parse_number(char *token);
- Xextern int parse_text(char *text);
- Xextern int parse_comment(char *com);
- Xextern int parse_keyword(char *token, char *text);
- Xextern int parse_roque(char *token);
- Xextern int parse_move(char *token);
- Xextern void init_parse(depl *m);
- X#else
- Xextern int in_board(/*int l, int c*/);
- Xextern int path_free(/*int l1, int c1, int l2, int c2*/);
- Xextern int check_roque(/*void*/);
- Xextern int guess_piece(/*void*/);
- Xextern int guess_depl(/*int nb, int tab[][2], int *pl1, int *pc1, int l2, int c2, int path*/);
- Xextern int ambiguity(/*int frompiece, int l2, int c2*/);
- Xextern int check_move(/*depl *m*/);
- Xextern int guess_move(/*void*/);
- Xextern int clear_pos(/*int lig, int col*/);
- Xextern int configure(/*void*/);
- Xextern int execute_move(/*void*/);
- Xextern int typechar(/*char c*/);
- Xextern int execute(/*int num, char c*/);
- Xextern int parse_number(/*char *token*/);
- Xextern int parse_text(/*char *text*/);
- Xextern int parse_comment(/*char *com*/);
- Xextern int parse_keyword(/*char *token, char *text*/);
- Xextern int parse_roque(/*char *token*/);
- Xextern int parse_move(/*char *token*/);
- Xextern void init_parse(/*depl *m*/);
- X#endif
- X
- X/* ------ top-level interface functions -------- */
- X
- X#ifdef __STDC__
- Xextern int parse_options(int argc, char *argv[]);
- Xextern void close_files(void);
- Xextern int associe_traduction(char **table, int langage);
- X
- X#else
- Xextern int parse_options(/*int argc, char *argv[]*/);
- Xextern void close_files(/*void*/);
- Xextern int associe_traduction(/*char **table, int langage*/);
- X
- X#endif
- X
- X
- X#endif
- END_OF_FILE
- if test 5592 -ne `wc -c <'notation.h'`; then
- echo shar: \"'notation.h'\" unpacked with wrong size!
- fi
- # end of 'notation.h'
- fi
- if test -f 'print-ps' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'print-ps'\"
- else
- echo shar: Extracting \"'print-ps'\" \(134 characters\)
- sed "s/^X//" >'print-ps' <<'END_OF_FILE'
- X#!/bin/sh
- X# printer for ps files using the font chess
- X# args : files to print
- XCHEQFILE="./Cheq"
- Xfor i
- Xdo
- X cat $CHEQFILE $i | lpr
- Xdone
- END_OF_FILE
- if test 134 -ne `wc -c <'print-ps'`; then
- echo shar: \"'print-ps'\" unpacked with wrong size!
- fi
- chmod +x 'print-ps'
- # end of 'print-ps'
- fi
- if test -f 'symb.tex' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'symb.tex'\"
- else
- echo shar: Extracting \"'symb.tex'\" \(3828 characters\)
- sed "s/^X//" >'symb.tex' <<'END_OF_FILE'
- X
- X check & \verb; +; & \verb; + ; & + & \verb; +; \cr
- X
- X double check & \verb; ++; & \verb; ++ ; & ++ & \verb; ++; \cr
- X
- X white stands lightly better & \verb; $wsb; & \verb; +=; & \COMwsb & \verb; \COMwsb; \cr
- X
- X black stands lightly better & \verb; $bsb; & \verb; =+; & \COMbsb & \verb; \COMbsb; \cr
- X
- X white has the upper hand & \verb; $wbe; & \verb; +_; & \COMwbe & \verb; \COMwbe; \cr
- X
- X black has the upper hand & \verb; $bbe; & \verb; _+; & \COMbbe & \verb; \COMbbe; \cr
- X
- X white has a decisive advantage & \verb; $wda; & \verb; +-; & \COMwda & \verb; \COMwda; \cr
- X
- X black has a decisive advantage & \verb; $bda; & \verb; -+; & \COMwda & \verb; \COMwda; \cr
- X
- X even & \verb; = ; & \verb; =; & \COMlev & \verb; \COMlev; \cr
- X
- X unclear & \verb; $ucr; & \verb; ~ ; & \COMucr & \verb; \COMucr; \cr
- X
- X with compensation for the material & \verb; $wco; & \verb; =~ ; & \COMwco & \verb; \COMwco; \cr
- X
- X development advantage & \verb; $dad; & \verb; (^) ; & \COMdad & \verb; \COMdad; \cr
- X
- X greater space advantage & \verb; $spa; & \verb; () ; & \COMspa & \verb; \COMspa; \cr
- X
- X with attack & \verb; $wta; & \verb; -> ; & \COMwta & \verb; \COMwta; \cr
- X
- X with initiative & \verb; $win; & \verb; |^ ; & \COMwin & \verb; \COMwin; \cr
- X
- X with counter-play & \verb; $wcp; & \verb; <-> ; & \COMwcp & \verb; \COMwcp; \cr
- X
- X zugzwang & \verb; $zug; & \verb; (.) ; & \COMzug & \verb; \COMzug; \cr
- X
- X mate & \verb; #; & \verb; # ; & \# & \verb; \#; \cr
- X
- X very good move & \verb; !; & \verb; ! ; & ! & \verb; !; \cr
- X
- X very bad move & \verb; ?; & \verb; ? ; & ? & \verb; ?; \cr
- X
- X excellent move & \verb; !!; & \verb; !! ; & !! & \verb; !!; \cr
- X
- X a mistake & \verb; ??; & \verb; ?? ; & ?? & \verb; ??; \cr
- X
- X a move deserving attention & \verb; !?; & \verb; !? ; & !? & \verb; !?; \cr
- X
- X a dubious move & \verb; ?!; & \verb; ?! ; & ?! & \verb; ?!; \cr
- X
- X with the idea... & \verb; $wti; & \verb; /\ ; & \COMwti & \verb; \COMwti; \cr
- X
- X only move & \verb; $olm; & \verb; [] ; & \COMolm & \verb; \COMolm; \cr
- X
- X better is & \verb; $bei; & \verb; ^_ ; & \COMbei & \verb; \COMbei; \cr
- X
- X file & \verb; $fil; & \verb; <=> ; & \COMfil & \verb; \COMfil; \cr
- X
- X diagonal & \verb; $dia; & \verb; /^ ; & \COMdia & \verb; \COMdia; \cr
- X
- X center & \verb; $cnt; & \verb; [+] ; & \COMcnt & \verb; \COMcnt; \cr
- X
- X king's side & \verb; $kgs; & \verb; >> ; & \COMkgs & \verb; \COMkgs; \cr
- X
- X queen's side & \verb; $qns; & \verb; << ; & \COMqns & \verb; \COMqns; \cr
- X
- X weak point & \verb; $wkp; & \verb; >< ; & \COMwkp & \verb; \COMwkp; \cr
- X
- X ending & \verb; $end; & \verb; _|_ ; & \COMend & \verb; \COMend; \cr
- X
- X pair of bishops & \verb; $pob; & \verb; == ; & \COMpob & \verb; \COMpob; \cr
- X
- X bishops of opposite colors & \verb; $opc; & \verb; =# ; & \COMopc & \verb; \COMopc; \cr
- X
- X same coloured bishops & \verb; $scb; & \verb; ## ; & \COMscb & \verb; \COMscb; \cr
- X
- X united pawns & \verb; $unp; & \verb; oo ; & \COMunp & \verb; \COMunp; \cr
- X
- X separated pawns & \verb; $sep; & \verb; o..o ; & \COMsep & \verb; \COMsep; \cr
- X
- X doubled pawns & \verb; $dop; & \verb; o/o ; & \COMdop & \verb; \COMdop; \cr
- X
- X time & \verb; $tim; & \verb; (+) ; & \COMtim & \verb; \COMtim; \cr
- X
- X with & \verb; $wit; & \verb; |_ ; & \COMwit & \verb; \COMwit; \cr
- X
- X without & \verb; $wto; & \verb; _| ; & \COMwto & \verb; \COMwto; \cr
- X
- X etc & \verb; etc; & \verb; etc ; & {etc} & \verb; {etc}; \cr
- X
- X etc & \verb; ||; & \verb; || ; & \COMetc & \verb; \COMetc; \cr
- X
- X see & \verb; $see; & \verb; ; & \COMsee & \verb; \COMsee; \cr
- X
- X en passant & \verb; ep; & \verb; ep ; & {ep} & \verb; {ep}; \cr
- X
- END_OF_FILE
- if test 3828 -ne `wc -c <'symb.tex'`; then
- echo shar: \"'symb.tex'\" unpacked with wrong size!
- fi
- # end of 'symb.tex'
- fi
- if test -f 'symboles.tex' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'symboles.tex'\"
- else
- echo shar: Extracting \"'symboles.tex'\" \(410 characters\)
- sed "s/^X//" >'symboles.tex' <<'END_OF_FILE'
- X\documentstyle[fullpage]{article}
- X\pagestyle{empty}
- X\begin{document}
- X%\title{A Menagerie of Chess Symbols}
- X%\author{Henry Thomas}
- X%\date{Mars 1990}
- X%\maketitle
- X\input{chesssymb.tex}
- X
- X\font\figchess=chessfig10
- X
- X\begin{center}
- X\begin{tabular}{|c|c|c|c|c|}\hline
- XComment & Abbrev.& Abbr. & Symbol & \LaTeX\ Keyword \\ \hline \hline
- X\input{symb.tex}
- X & & & & \\ \hline
- X\end{tabular}
- X\end{center}
- X
- X
- X\end{document}
- X
- END_OF_FILE
- if test 410 -ne `wc -c <'symboles.tex'`; then
- echo shar: \"'symboles.tex'\" unpacked with wrong size!
- fi
- # end of 'symboles.tex'
- fi
- if test -f 'symboles.txt' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'symboles.txt'\"
- else
- echo shar: Extracting \"'symboles.txt'\" \(1543 characters\)
- sed "s/^X//" >'symboles.txt' <<'END_OF_FILE'
- Xcomment shorthand english translation
- X------------------------------------------------
- X
- X + + check
- X
- X ++ ++ double check
- X
- X $wsb += white stands lightly better
- X
- X $bsb =+ black stands lightly better
- X
- X $wbe +_ white has the upper hand
- X
- X $bbe _+ black has the upper hand
- X
- X $wda +- white has a decisive advantage
- X
- X $bda -+ black has a decisive advantage
- X
- X = = even
- X
- X $ucr ~ unclear
- X
- X $wco =~ with compensation for the material
- X
- X $dad (^) development advantage
- X
- X $spa () greater space advantage
- X
- X $wta -> with attack
- X
- X $win |^ with initiative
- X
- X $wcp <-> with counter-play
- X
- X $zug (.) zugzwang
- X
- X # # mate
- X
- X ! ! very good move
- X
- X ? ? very bad move
- X
- X !! !! excellent move
- X
- X ?? ?? a mistake
- X
- X !? !? a move deserving attention
- X
- X ?! ?! a dubious move
- X
- X $wti /\ with the idea...
- X
- X $olm [] only move
- X
- X $bei ^_ better is
- X
- X $fil <=> file
- X
- X $dia /^ diagonal
- X
- X $cnt [+] center
- X
- X $kgs >> king's side
- X
- X $qns << queen's side
- X
- X $wkp >< weak point
- X
- X $end _|_ ending
- X
- X $pob == pair of bishops
- X
- X $opc =# bishops of opposite colors
- X
- X $scb ## same coloured bishops
- X
- X $unp oo united pawns
- X
- X $sep o..o separated pawns
- X
- X $dop o/o doubled pawns
- X
- X $tim (+) time
- X
- X $wit |_ with
- X
- X $wto _| without
- X
- X etc etc etc
- X
- X || || etc
- X
- X $see see
- X
- X ep ep en passant
- X
- END_OF_FILE
- if test 1543 -ne `wc -c <'symboles.txt'`; then
- echo shar: \"'symboles.txt'\" unpacked with wrong size!
- fi
- # end of 'symboles.txt'
- fi
- echo shar: End of archive 1 \(of 4\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 4 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Henry Thomas - IRISA - E-mail: Henry.Thomas@irisa.fr
- Campus Universitaire de Beaulieu - Phone: (+33)99 36 20 00 +549
- 35042 RENNES CEDEX FRANCE - Fax: (+33)99 38 38 32 Telex: UNIRISA 950473F
- Telex Atlas X400: /X121=842950473/@atlas.fr, Fax:/X121=200099383832/@atlas.fr
- --
- exit 0 # Just in case...
- --
- Kent Landfield INTERNET: kent@sparky.IMD.Sterling.COM
- Sterling Software, IMD UUCP: uunet!sparky!kent
- Phone: (402) 291-8300 FAX: (402) 291-4362
- Please send comp.sources.misc-related mail to kent@uunet.uu.net.
-