%--------------------- Cut here ---------------------------------- % %---------------------- General ---------------------------------- % \font\gray=gray \font\sym =cmsy10 \font\bsym =cmsy10 scaled \magstep1 \font\bbrm =cmr10 scaled \magstep2 \font\bbss =cmss10 scaled \magstep2 \font\ssbf =cmssbx10 \font\bssbf =cmssbx10 scaled \magstep1 \font\bbssbf =cmssbx10 scaled \magstep2 \font\bbbf =cmbx10 scaled \magstep2 \font\bbbbsym=cmsy10 scaled \magstep4 \font\bsymbf =cmbsy10 scaled \magstep1 \font\symbf =cmbsy10 \font\ninesym=cmsy9 \font\eightsym=cmsy8 \newif\ifblackfield \newcount\movenumber \newcount\linecount \newcount\colcount \newbox\boxone \newdimen\dimenone \newbox\boxtwo \newdimen\dimentwo \newdimen\dimenthree \newskip\headskipamount \headskipamount=-8pt \newskip\footskipamount \footskipamount=-5pt % 1 dot = 15787.6224 sp bei 300 dots/inch \newdimen\lowerpiece \lowerpiece=47363sp \newdimen\fieldwidth \fieldwidth=1326160sp % 84 dots bei 300 dpi \newdimen\fieldheight \fieldheight=994620sp % 63 dots \newdimen\fielddepth \fielddepth=\fieldwidth % Rest \advance\fielddepth by -\fieldheight \newdimen\framewidth \framewidth=252602sp % 16 dots \def\notation{% \catcode`\8=11 \catcode`\2=11 \catcode`\3=11 \catcode`\4=11 \catcode`\5=11 \catcode`\6=11 \catcode`\7=11 \catcode`\1=11} \catcode`\@=11 % %---------------------- Pieces ----------------------------------- % \def\setpiece#1{\lower\lowerpiece\hbox to \fieldwidth{\hfill#1\hfill}} \def\together#1#2{% \setbox\boxone=\hbox{#1}\setbox\boxtwo=\hbox{#2}% \dimenone=\wd\boxone \dimentwo=\wd\boxtwo \dimenthree=-\dimenone \advance\dimenone by -\dimentwo \divide\dimenone by 2 \advance\dimenthree by \dimenone \unhbox\boxone\kern\dimenthree\unhbox\boxtwo} \def\pmb#1{\setbox0=\hbox{#1}% \kern-.025em\copy0\kern-\wd0 \kern .05em\copy0\kern-\wd0 \kern-0.025em\raise .0433em\box0 } \def\WB{\together{\kern 0pt\hbox{\bbbbsym\char14 }}% {\kern -1pt\hbox{\vrule height 1.4pt depth 0pt width 8pt}}} \def\SB{\together{\kern 0pt\hbox{\bbbbsym\char15 }}% {\kern -1pt\hbox{\vrule height 1.4pt depth 0pt width 8pt}}} \edef\WS{\setbox0=\hbox{\bsym\char120 }\raise\dp0\hbox{\unhbox0 }} \edef\SS{\setbox0=\hbox{\pmb{\bsymbf\char120 }}% \together{\raise\dp0\hbox{\unhbox0 }}% {\raise3pt\hbox{\pmb{\symbf\char15 }}}} \edef\WT{{\bbrm\char5 }} \edef\ST{\together{\kern-1pt\hbox{\bbbf\char5 }}% {\vrule height 9.5pt width 6pt depth 0pt}} \edef\WK{\together{\symbf\char117 }% {\together{\raise 4pt\hbox{\sym\char121 }}% {\vrule width 5pt depth0pt height 0.4pt}}} \edef\SK{\together{\vrule width 6pt depth 0pt height 6pt}% {\raise 5pt \hbox{\symbf\char121 }}} \edef\WL{{\bbss\char3 }} \edef\SL{\together{\bbssbf\char3 }% {\together{\bssbf\char3 }{\together{\vrule height 5pt width 5pt depth 0pt}{\ssbf\char3 }}}} \edef\SD{\together{\together{\pmb{\symbf\char52 }}% {\together{\pmb{\ninesym\char52 }}% {\together{\pmb{\eightsym\char52 }}{\symbf\char15 }}}}% {\kern 1pt\hbox{\raise 6pt\hbox{\symbf\char15 }}}} \edef\WD{\together{\symbf\char52 }% {\kern 0pt\hbox{\raise 6pt\hbox{\symbf\char14 }}}} % %---------------------- Board ------------------------------------ % \def\fieldstrut{\vrule height \fieldheight depth \fielddepth width 0pt} \def\void{} \def\field#1.#2.{\def\next{#1}% \ifx\next\empty\blackfieldfalse \else\blackfieldtrue\fi \ifblackfield\edef\next{#2}% \ifx\next\empty\vrule\fieldstrut\hbox to \fieldwidth {\hfill\emptyblackfield\hfill}% \else\vrule\fieldstrut\blackborder\setpiece{#2}\fi \else\vrule\fieldstrut\setpiece{#2}\fi} \def\nfield#1{\vrule height 0pt depth 0pt\fieldstrut\hbox to \fieldwidth {\hfil\rm#1\hfil}} \def\linenumber#1{\hbox to 0pt{\rm \kern -10pt #1\hss}} \def\innerloop#1\innerrepeat{\def\innerbody{#1}\inneriterate} \def\inneriterate{\innerbody\let\next=\inneriterate \else\let\next=\relax\fi\next} % % This is for a character width of 1.4454pt % \newcount\numberofchars \newcount\numberofborderchars \newcount\numberofgapchars \numberofchars=14 \numberofborderchars=4 % % This is for a character width of 0.9636pt % %\numberofchars=21 \numberofborderchars=5 \numberofgapchars=\numberofchars \advance\numberofgapchars by -\numberofborderchars \advance\numberofgapchars by -\numberofborderchars \def\emptyblackfield{\vbox to \fieldheight{\gray \offinterlineskip\parindent=0pt \setbox0=\hbox{\char1 }\hsize=\wd0 \multiply \hsize by \numberofchars\relax \linecount=0 \loop\advance\linecount by 1 \colcount=0 \innerloop\advance\colcount by 1 \char1 \ifnum\colcount<\numberofchars\relax\innerrepeat \ifnum\linecount<\numberofchars\relax\break\repeat \vss}} \def\blackborder{\hbox to 0pt{\vbox to \fieldheight{\gray \offinterlineskip\parindent=0pt \setbox0=\hbox{\char1 }\hsize=\wd0 \multiply \hsize by \numberofchars\relax \linecount=0 \count0=\numberofchars \advance\count0 by -\numberofborderchars \loop\advance\linecount by 1 \colcount=0 \innerloop\advance\colcount by 1 \char1 \ifnum\colcount<\numberofchars\relax\innerrepeat \ifnum\linecount<\numberofborderchars\relax\break\repeat \break \loop\advance\linecount by 1 \colcount=0 \innerloop\advance\colcount by 1 \char1 \ifnum\colcount<\numberofborderchars\relax\innerrepeat \hfill\colcount=0 \innerloop\advance\colcount by 1 \char1 \ifnum\colcount<\numberofborderchars\relax\innerrepeat \ifnum\linecount<\count0\relax\break\repeat \break \loop\advance\linecount by 1 \colcount=0 \innerloop\advance\colcount by 1 \char1 \ifnum\colcount<\numberofchars\relax\innerrepeat \ifnum\linecount<\numberofchars\relax\break\repeat \vss}\hss}} {\notation \gdef\showboard{\par\centerline{Board after \ifx\colour\whitecolour Black's \else White's \fi \number\movenumber.\ move}\vskip \headskipamount $$\vbox{\offinterlineskip \halign{\linenumber{##}&\vrule\field##.&\field##.&\field##.&\field##.& \field##.&\field##.&\field##.&\field##.\vrule\vrule\cr \noalign{\hrule}\noalign{\hrule} 8& .\@a8&*.\@b8& .\@c8&*.\@d8& .\@e8&*.\@f8& .\@g8&*.\@h8\cr \noalign{\hrule} 7&*.\@a7& .\@b7&*.\@c7& .\@d7&*.\@e7& .\@f7&*.\@g7& .\@h7\cr \noalign{\hrule} 6& .\@a6&*.\@b6& .\@c6&*.\@d6& .\@e6&*.\@f6& .\@g6&*.\@h6\cr \noalign{\hrule} 5&*.\@a5& .\@b5&*.\@c5& .\@d5&*.\@e5& .\@f5&*.\@g5& .\@h5\cr \noalign{\hrule} 4& .\@a4&*.\@b4& .\@c4&*.\@d4& .\@e4&*.\@f4& .\@g4&*.\@h4\cr \noalign{\hrule} 3&*.\@a3& .\@b3&*.\@c3& .\@d3&*.\@e3& .\@f3&*.\@g3& .\@h3\cr \noalign{\hrule} 2& .\@a2&*.\@b2& .\@c2&*.\@d2& .\@e2&*.\@f2& .\@g2&*.\@h2\cr \noalign{\hrule} 1&*.\@a1& .\@b1&*.\@c1& .\@d1&*.\@e1& .\@f1&*.\@g1& .\@h1\cr \noalign{\hrule}\noalign{\hrule} }\vskip \footskipamount \halign{\linenumber{##}&\nfield{##}&\nfield{##}&\nfield{##}&\nfield{##}& \nfield{##}&\nfield{##}&\nfield{##}&\nfield{##}\cr &a&b&c&d&e&f&g&h\cr} }$$\par} } {\notation \gdef\setupboard{\def\colour{W}\movenumber=0 \gdef\@a8{\ST}\gdef\@b8{\SS}\gdef\@c8{\SL}\gdef\@d8{\SD}% \gdef\@e8{\SK}\gdef\@f8{\SL}\gdef\@g8{\SS}\gdef\@h8{\ST}% \gdef\@a7{\SB}\gdef\@b7{\SB}\gdef\@c7{\SB}\gdef\@d7{\SB}% \gdef\@e7{\SB}\gdef\@f7{\SB}\gdef\@g7{\SB}\gdef\@h7{\SB}% \gdef\@a6{\void}\gdef\@b6{\void}\gdef\@c6{\void}\gdef\@d6{\void}% \gdef\@e6{\void}\gdef\@f6{\void}\gdef\@g6{\void}\gdef\@h6{\void}% \gdef\@a5{\void}\gdef\@b5{\void}\gdef\@c5{\void}\gdef\@d5{\void}% \gdef\@e5{\void}\gdef\@f5{\void}\gdef\@g5{\void}\gdef\@h5{\void}% \gdef\@a4{\void}\gdef\@b4{\void}\gdef\@c4{\void}\gdef\@d4{\void}% \gdef\@e4{\void}\gdef\@f4{\void}\gdef\@g4{\void}\gdef\@h4{\void}% \gdef\@a3{\void}\gdef\@b3{\void}\gdef\@c3{\void}\gdef\@d3{\void}% \gdef\@e3{\void}\gdef\@f3{\void}\gdef\@g3{\void}\gdef\@h3{\void}% \gdef\@a2{\WB}\gdef\@b2{\WB}\gdef\@c2{\WB}\gdef\@d2{\WB}% \gdef\@e2{\WB}\gdef\@f2{\WB}\gdef\@g2{\WB}\gdef\@h2{\WB}% \gdef\@a1{\WT}\gdef\@b1{\WS}\gdef\@c1{\WL}\gdef\@d1{\WD}% \gdef\@e1{\WK}\gdef\@f1{\WL}\gdef\@g1{\WS}\gdef\@h1{\WT}} } \setupboard % %---------------------- Moves ------------------------------------ % \def\move#1#2#3#4#5#6 {% Syntax: [KDTLS ][a-h][1-8][-x][a-h][1-8] % Man beachte, dass der erste Parameter fehlen kann, d.h., dies muss % erst ermittelt werden mit hilfe des dritten. \if#3-\@move B#1#2#3#4#5% \else\if#3x\@move B#1#2#3#4#5% \else\@move #1#2#3#4#5#6\fi\fi \ifx\colour\whitecolour\def\colour{S}\advance\movenumber by 1 \else\def\colour{W}\fi } \def\whitecolour{W} \def\colour{W} \def\@move#1#2#3#4#5#6{% Syntax: [KDTLSB][a-h][1-8][-x][a-h][1-8] \expandafter\def\csname @#2#3\endcsname{\void}% \ifx\colour\whitecolour \expandafter\def\csname @#5#6\endcsname{\csname W#1\endcsname}% \else\expandafter\def\csname @#5#6\endcsname{\csname S#1\endcsname}\fi} \catcode`\@=12 % %---------------------- End of Macro Definitions ----------------- % \move e2-e4 \move c7-c6 \move d2-d4 \move d7-d5 \move Sb1-d2 \move d5xe4 \move Sd2xe4 \move Sb8-d7 \move Sg1-f3 \showboard