From 7425adb75ffbe957eaf75d7eef2e7e78bd3924d2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 8 Aug 2011 23:06:38 +0000 Subject: new latex package othelloboard 1.01 (8aug11) git-svn-id: svn://tug.org/texlive/trunk@23463 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/othelloboard/othelloboard.sty | 947 +++++++++++++++++++++ 1 file changed, 947 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty (limited to 'Master/texmf-dist/tex/latex/othelloboard') diff --git a/Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty b/Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty new file mode 100644 index 00000000000..435fc088208 --- /dev/null +++ b/Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty @@ -0,0 +1,947 @@ +%% othelloboard.sty + %% Copyright 2011 Steven Hall + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is Steven Hall. + % + % This work consists of the files othelloboard.sty and othelloboard.pdf + + + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{othelloboard}[2011/06/28 Othello board diagram drawing package by Steven Hall] +\RequirePackage{graphicx} +\RequirePackage{pict2e} +\RequirePackage{ifthen} +\RequirePackage{color} +\RequirePackage{xstring} +\RequirePackage{stringstrings} + + +%%%%%%%%%%%%%%%%%%%% +%%OTHELLO DIAGRAMS MACROS%% +%%%%%%%%%%%%%%%%%%%% + + +%------Main commands for individual discs-------% +\newcommand{\blackdisc}{\circle*{20.4}} +\newcommand{\whitedisc}{\circle{20}} +\newcommand{\whitediamond}{\makebox(0,0){\rotatebox{45}{\framebox(13.3,13.3){}}}} +\newcommand{\blackdiamond}{\makebox(0,0){\rotatebox{45}{\rule{14.12pt}{14.12pt}}}} + + +%------Conditional command depending on value of a single argument. 1=white disc, 2=black disc, 3=white diamond, 4=black diamond, 0=no disc. Other numbers give no disc by default. + +\newcommand{\othellodisc}[1]{\ifthenelse{#1=0}% +{}% +{\ifthenelse{#1=1}% +{\whitedisc}% +{\ifthenelse{#1=2}% +{\blackdisc}% +{\ifthenelse{#1=3}% +{\whitediamond}% +{\ifthenelse{#1=4}% +{\blackdiamond}% +{}% +}}}}} + +%-------Declare all the counters to be used to store value inputted for each square. Only called upon to determine the text colour of annotations (white text if value=2 or 4, otherwise normal text). +\newcounter{disccolouraa} \newcounter{disccolourab} \newcounter{disccolourac} +\newcounter{disccolourad} \newcounter{disccolourae} \newcounter{disccolouraf} +\newcounter{disccolourag} \newcounter{disccolourah} \newcounter{disccolourba} +\newcounter{disccolourbb} \newcounter{disccolourbc} \newcounter{disccolourbd} +\newcounter{disccolourbe} \newcounter{disccolourbf} \newcounter{disccolourbg} +\newcounter{disccolourbh} \newcounter{disccolourca} \newcounter{disccolourcb} +\newcounter{disccolourcc} \newcounter{disccolourcd} \newcounter{disccolource} +\newcounter{disccolourcf} \newcounter{disccolourcg} \newcounter{disccolourch} +\newcounter{disccolourda} \newcounter{disccolourdb} \newcounter{disccolourdc} +\newcounter{disccolourdd} \newcounter{disccolourde} \newcounter{disccolourdf} +\newcounter{disccolourdg} \newcounter{disccolourdh} \newcounter{disccolourea} +\newcounter{disccoloureb} \newcounter{disccolourec} \newcounter{disccoloured} +\newcounter{disccolouree} \newcounter{disccolouref} \newcounter{disccoloureg} +\newcounter{disccoloureh} \newcounter{disccolourfa} \newcounter{disccolourfb} +\newcounter{disccolourfc} \newcounter{disccolourfd} \newcounter{disccolourfe} +\newcounter{disccolourff} \newcounter{disccolourfg} \newcounter{disccolourfh} +\newcounter{disccolourga} \newcounter{disccolourgb} \newcounter{disccolourgc} +\newcounter{disccolourgd} \newcounter{disccolourge} \newcounter{disccolourgf} +\newcounter{disccolourgg} \newcounter{disccolourgh} \newcounter{disccolourha} +\newcounter{disccolourhb} \newcounter{disccolourhc} \newcounter{disccolourhd} +\newcounter{disccolourhe} \newcounter{disccolourhf} \newcounter{disccolourhg} +\newcounter{disccolourhh} +% + +%----- Need a command to reset all counters.---- +\newcommand{\resetalldisccolours}{ +\setcounter{disccolouraa}{0}\setcounter{disccolourab}{0}\setcounter{disccolourac}{0} +\setcounter{disccolourad}{0}\setcounter{disccolourae}{0}\setcounter{disccolouraf}{0} +\setcounter{disccolourag}{0}\setcounter{disccolourah}{0}\setcounter{disccolourba}{0} +\setcounter{disccolourbb}{0}\setcounter{disccolourbc}{0}\setcounter{disccolourbd}{0} +\setcounter{disccolourbe}{0}\setcounter{disccolourbf}{0}\setcounter{disccolourbg}{0} +\setcounter{disccolourbh}{0}\setcounter{disccolourca}{0}\setcounter{disccolourcb}{0} +\setcounter{disccolourcc}{0}\setcounter{disccolourcd}{0}\setcounter{disccolource}{0} +\setcounter{disccolourcf}{0}\setcounter{disccolourcg}{0}\setcounter{disccolourch}{0} +\setcounter{disccolourda}{0}\setcounter{disccolourdb}{0}\setcounter{disccolourdc}{0} +\setcounter{disccolourdd}{0}\setcounter{disccolourde}{0}\setcounter{disccolourdf}{0} +\setcounter{disccolourdg}{0}\setcounter{disccolourdh}{0}\setcounter{disccolourea}{0} +\setcounter{disccoloureb}{0}\setcounter{disccolourec}{0}\setcounter{disccoloured}{0} +\setcounter{disccolouree}{0}\setcounter{disccolouref}{0}\setcounter{disccoloureg}{0} +\setcounter{disccoloureh}{0}\setcounter{disccolourfa}{0}\setcounter{disccolourfb}{0} +\setcounter{disccolourfc}{0}\setcounter{disccolourfd}{0}\setcounter{disccolourfe}{0} +\setcounter{disccolourff}{0}\setcounter{disccolourfg}{0}\setcounter{disccolourfh}{0} +\setcounter{disccolourga}{0}\setcounter{disccolourgb}{0}\setcounter{disccolourgc}{0} +\setcounter{disccolourgd}{0}\setcounter{disccolourge}{0}\setcounter{disccolourgf}{0} +\setcounter{disccolourgg}{0}\setcounter{disccolourgh}{0}\setcounter{disccolourha}{0} +\setcounter{disccolourhb}{0}\setcounter{disccolourhc}{0}\setcounter{disccolourhd}{0} +\setcounter{disccolourhe}{0}\setcounter{disccolourhf}{0}\setcounter{disccolourhg}{0} +\setcounter{disccolourhh}{0}} + +%------- Colour commands for annotations text ------------ +% Centres inputted annotation string for each square within a 20pt wide box. Text can spill outside the box and remains centred. Two commands, one for white, one for normal (typically black) text. +\newcommand{\othellowhitetext}[1]{\makebox[20pt]{\textcolor{white}{#1}}} +\newcommand{\othellonormaltext}[1]{\makebox[20pt]{#1}} + +% Conditional command that is used within each \annotations...row command. Takes two arguments. The first determines which of the two commands defined just above to execute (the white text command if arg is 2 or 4, black text command otherwise). The second argument is the string that gets fed into either the white text or black text command. The second argument is inputted by the user. The first string is going to be taken from the value of a disccolour... counter. +\newcommand{\othelloannotation}[2]{% +\ifthenelse{#1=2 \or #1=4}% +{\othellowhitetext{#2}}% +{\othellonormaltext{#2}}% +} + + +%-------Individual rows of the array. (LaTeX only takes up to 9 arguments in a \newcommand definition) +% Discs/diamonds are placed horizontally and vertically at 24-unit intervals. Diameter 20 units. + +%----First Row (from the top, left to right)-----% +\newcommand{\othelloarrayfirstrow}[8]% +{% +\put(12,180){\othellodisc{#1}} \setcounter{disccolouraa}{#1}% Places disc/diamond at a1 and stores value in counters declared above. +\put(36,180){\othellodisc{#2}} \setcounter{disccolourba}{#2} +\put(60,180){\othellodisc{#3}} \setcounter{disccolourca}{#3} +\put(84,180){\othellodisc{#4}} \setcounter{disccolourda}{#4} +\put(108,180){\othellodisc{#5}} \setcounter{disccolourea}{#5} +\put(132,180){\othellodisc{#6}} \setcounter{disccolourfa}{#6} +\put(156,180){\othellodisc{#7}} \setcounter{disccolourga}{#7} +\put(180,180){\othellodisc{#8}} \setcounter{disccolourha}{#8} +} +%------Second Row--------% +\newcommand{\othelloarraysecondrow}[8]% +{% +\put(12,156){\othellodisc{#1}} \setcounter{disccolourab}{#1} +\put(36,156){\othellodisc{#2}} \setcounter{disccolourbb}{#2} +\put(60,156){\othellodisc{#3}} \setcounter{disccolourcb}{#3} +\put(84,156){\othellodisc{#4}} \setcounter{disccolourdb}{#4} +\put(108,156){\othellodisc{#5}} \setcounter{disccoloureb}{#5} +\put(132,156){\othellodisc{#6}} \setcounter{disccolourfb}{#6} +\put(156,156){\othellodisc{#7}} \setcounter{disccolourgb}{#7} +\put(180,156){\othellodisc{#8}} \setcounter{disccolourhb}{#8} +} +%-------Third Row-----% +\newcommand{\othelloarraythirdrow}[8]% +{% +\put(12,132){\othellodisc{#1}} \setcounter{disccolourac}{#1} +\put(36,132){\othellodisc{#2}} \setcounter{disccolourbc}{#2} +\put(60,132){\othellodisc{#3}} \setcounter{disccolourcc}{#3} +\put(84,132){\othellodisc{#4}} \setcounter{disccolourdc}{#4} +\put(108,132){\othellodisc{#5}} \setcounter{disccolourec}{#5} +\put(132,132){\othellodisc{#6}} \setcounter{disccolourfc}{#6} +\put(156,132){\othellodisc{#7}} \setcounter{disccolourgc}{#7} +\put(180,132){\othellodisc{#8}} \setcounter{disccolourhc}{#8} +} +%-------Fourth Row-----% +\newcommand{\othelloarrayfourthrow}[8]% +{% +\put(12,108){\othellodisc{#1}} \setcounter{disccolourad}{#1} +\put(36,108){\othellodisc{#2}} \setcounter{disccolourbd}{#2} +\put(60,108){\othellodisc{#3}} \setcounter{disccolourcd}{#3} +\put(84,108){\othellodisc{#4}} \setcounter{disccolourdd}{#4} +\put(108,108){\othellodisc{#5}} \setcounter{disccoloured}{#5} +\put(132,108){\othellodisc{#6}} \setcounter{disccolourfd}{#6} +\put(156,108){\othellodisc{#7}} \setcounter{disccolourgd}{#7} +\put(180,108){\othellodisc{#8}}\setcounter{disccolourhd}{#8} +} +%-------Fifth Row-----% +\newcommand{\othelloarrayfifthrow}[8]% +{% +\put(12,84){\othellodisc{#1}} \setcounter{disccolourae}{#1} +\put(36,84){\othellodisc{#2}} \setcounter{disccolourbe}{#2} +\put(60,84){\othellodisc{#3}} \setcounter{disccolource}{#3} +\put(84,84){\othellodisc{#4}} \setcounter{disccolourde}{#4} +\put(108,84){\othellodisc{#5}} \setcounter{disccolouree}{#5} +\put(132,84){\othellodisc{#6}} \setcounter{disccolourfe}{#6} +\put(156,84){\othellodisc{#7}} \setcounter{disccolourge}{#7} +\put(180,84){\othellodisc{#8}} \setcounter{disccolourhe}{#8} +} +%-------Sixth Row-----% +\newcommand{\othelloarraysixthrow}[8]% +{% +\put(12,60){\othellodisc{#1}} \setcounter{disccolouraf}{#1} +\put(36,60){\othellodisc{#2}} \setcounter{disccolourbf}{#2} +\put(60,60){\othellodisc{#3}} \setcounter{disccolourcf}{#3} +\put(84,60){\othellodisc{#4}} \setcounter{disccolourdf}{#4} +\put(108,60){\othellodisc{#5}} \setcounter{disccolouref}{#5} +\put(132,60){\othellodisc{#6}} \setcounter{disccolourff}{#6} +\put(156,60){\othellodisc{#7}} \setcounter{disccolourgf}{#7} +\put(180,60){\othellodisc{#8}} \setcounter{disccolourhf}{#8} +} +%-------Seventh Row-----% +\newcommand{\othelloarrayseventhrow}[8]% +{% +\put(12,36){\othellodisc{#1}} \setcounter{disccolourag}{#1} +\put(36,36){\othellodisc{#2}} \setcounter{disccolourbg}{#2} +\put(60,36){\othellodisc{#3}} \setcounter{disccolourcg}{#3} +\put(84,36){\othellodisc{#4}} \setcounter{disccolourdg}{#4} +\put(108,36){\othellodisc{#5}} \setcounter{disccoloureg}{#5} +\put(132,36){\othellodisc{#6}} \setcounter{disccolourfg}{#6} +\put(156,36){\othellodisc{#7}} \setcounter{disccolourgg}{#7} +\put(180,36){\othellodisc{#8}} \setcounter{disccolourhg}{#8} +} +%-------Eighth Row-----% +\newcommand{\othelloarrayeighthrow}[8]% +{% +\put(12,12){\othellodisc{#1}} \setcounter{disccolourah}{#1} +\put(36,12){\othellodisc{#2}} \setcounter{disccolourbh}{#2} +\put(60,12){\othellodisc{#3}} \setcounter{disccolourch}{#3} +\put(84,12){\othellodisc{#4}} \setcounter{disccolourdh}{#4} +\put(108,12){\othellodisc{#5}} \setcounter{disccoloureh}{#5} +\put(132,12){\othellodisc{#6}} \setcounter{disccolourfh}{#6} +\put(156,12){\othellodisc{#7}} \setcounter{disccolourgh}{#7} +\put(180,12){\othellodisc{#8}} \setcounter{disccolourhh}{#8} +} + + +%----Annotations Row by Row-----% +%----First Row (from the top, left to right)-----% +\newcommand{\annotationsfirstrow}[8]% +{% +\put(2,176.5){\othelloannotation{\value{disccolouraa}}{#1}} %Places text at a1 in white or normal font according to colour of the disc at that square. Calls upon counter value set when the disc was placed. +\put(26,176.5){\othelloannotation{\value{disccolourba}}{#2}} +\put(50,176.5){\othelloannotation{\value{disccolourca}}{#3}} +\put(74,176.5){\othelloannotation{\value{disccolourda}}{#4}} +\put(98,176.5){\othelloannotation{\value{disccolourea}}{#5}} +\put(122,176.5){\othelloannotation{\value{disccolourfa}}{#6}} +\put(146,176.5){\othelloannotation{\value{disccolourga}}{#7}} +\put(170,176.5){\othelloannotation{\value{disccolourha}}{#8}} +} +%----Second Row------% +\newcommand{\annotationssecondrow}[8]% +{% +\put(2,152.5){\othelloannotation{\value{disccolourab}}{#1}} \put(26,152.5){\othelloannotation{\value{disccolourbb}}{#2}} \put(50,152.5){\othelloannotation{\value{disccolourcb}}{#3}} \put(74,152.5){\othelloannotation{\value{disccolourdb}}{#4}} \put(98,152.5){\othelloannotation{\value{disccoloureb}}{#5}} \put(122,152.5){\othelloannotation{\value{disccolourfb}}{#6}} \put(146,152.5){\othelloannotation{\value{disccolourgb}}{#7}} \put(170,152.5){\othelloannotation{\value{disccolourhb}}{#8}} +} +%----Third Row------% +\newcommand{\annotationsthirdrow}[8]% +{% +\put(2,128.5){\othelloannotation{\value{disccolourac}}{#1}} \put(26,128.5){\othelloannotation{\value{disccolourbc}}{#2}} \put(50,128.5){\othelloannotation{\value{disccolourcc}}{#3}} \put(74,128.5){\othelloannotation{\value{disccolourdc}}{#4}} \put(98,128.5){\othelloannotation{\value{disccolourec}}{#5}} \put(122,128.5){\othelloannotation{\value{disccolourfc}}{#6}} \put(146,128.5){\othelloannotation{\value{disccolourgc}}{#7}} \put(170,128.5){\othelloannotation{\value{disccolourhc}}{#8}} +} +%----Fourth Row-----% +\newcommand{\annotationsfourthrow}[8] +{% +\put(2,104.5){\othelloannotation{\value{disccolourad}}{#1}} \put(26,104.5){\othelloannotation{\value{disccolourbd}}{#2}} \put(50,104.5){\othelloannotation{\value{disccolourcd}}{#3}} \put(74,104.5){\othelloannotation{\value{disccolourdd}}{#4}} \put(98,104.5){\othelloannotation{\value{disccoloured}}{#5}} \put(122,104.5){\othelloannotation{\value{disccolourfd}}{#6}} \put(146,104.5){\othelloannotation{\value{disccolourgd}}{#7}} \put(170,104.5){\othelloannotation{\value{disccolourhd}}{#8}} +} +%----Fifth Row-----% +\newcommand{\annotationsfifthrow}[8] +{% +\put(2,80.5){\othelloannotation{\value{disccolourae}}{#1}} \put(26,80.5){\othelloannotation{\value{disccolourbe}}{#2}} \put(50,80.5){\othelloannotation{\value{disccolource}}{#3}} \put(74,80.5){\othelloannotation{\value{disccolourde}}{#4}} \put(98,80.5){\othelloannotation{\value{disccolouree}}{#5}} \put(122,80.5){\othelloannotation{\value{disccolourfe}}{#6}} \put(146,80.5){\othelloannotation{\value{disccolourge}}{#7}} \put(170,80.5){\othelloannotation{\value{disccolourhe}}{#8}} +} +%----Sixth Row-----% +\newcommand{\annotationssixthrow}[8] +{ +\put(2,56.5){\othelloannotation{\value{disccolouraf}}{#1}} \put(26,56.5){\othelloannotation{\value{disccolourbf}}{#2}} \put(50,56.5){\othelloannotation{\value{disccolourcf}}{#3}} \put(74,56.5){\othelloannotation{\value{disccolourdf}}{#4}}\put(98,56.5){\othelloannotation{\value{disccolouref}}{#5}}\put(122,56.5){\othelloannotation{\value{disccolourff}}{#6}}\put(146,56.5){\othelloannotation{\value{disccolourgf}}{#7}}\put(170,56.5){\othelloannotation{\value{disccolourhf}}{#8}} +} +%----Seventh Row-----% +\newcommand{\annotationsseventhrow}[8]% +{% +\put(2,32.5){\othelloannotation{\value{disccolourag}}{#1}} \put(26,32.5){\othelloannotation{\value{disccolourbg}}{#2}} \put(50,32.5){\othelloannotation{\value{disccolourcg}}{#3}} \put(74,32.5){\othelloannotation{\value{disccolourdg}}{#4}} \put(98,32.5){\othelloannotation{\value{disccoloureg}}{#5}} \put(122,32.5){\othelloannotation{\value{disccolourfg}}{#6}} \put(146,32.5){\othelloannotation{\value{disccolourgg}}{#7}} \put(170,32.5){\othelloannotation{\value{disccolourhg}}{#8}} +} +%----Eighth Row-----% +\newcommand{\annotationseighthrow}[8]% +{% +\put(2,8.5){\othelloannotation{\value{disccolourah}}{#1}} \put(26,8.5){\othelloannotation{\value{disccolourbh}}{#2}} \put(50,8.5){\othelloannotation{\value{disccolourch}}{#3}} \put(74,8.5){\othelloannotation{\value{disccolourdh}}{#4}} \put(98,8.5){\othelloannotation{\value{disccoloureh}}{#5}} \put(122,8.5){\othelloannotation{\value{disccolourfh}}{#6}} \put(146,8.5){\othelloannotation{\value{disccolourgh}}{#7}} \put(170,8.5){\othelloannotation{\value{disccolourhh}}{#8}} +} + +%-----Grids-------% +\newcommand{\othellogrid}{% +% outside edges first, slightly thicker +\thicklines +\put(0,0){\line(0,1){192}} +\put(192,0){\line(0,1){192}} +\put(0,0){\line(1,0){192}} +\put(0,192){\line(1,0){192}} +% inside lines +\thinlines +\put(24,0){\line(0,1){192}} +\put(48,0){\line(0,1){192}} +\put(72,0){\line(0,1){192}} +\put(96,0){\line(0,1){192}} +\put(120,0){\line(0,1){192}} +\put(144,0){\line(0,1){192}} +\put(168,0){\line(0,1){192}} +\put(0,24){\line(1,0){192}} +\put(0,48){\line(1,0){192}} +\put(0,72){\line(1,0){192}} +\put(0,96){\line(1,0){192}} +\put(0,120){\line(1,0){192}} +\put(0,144){\line(1,0){192}} +\put(0,168){\line(1,0){192}} +} + +%Initially included dot markings (on the inner corners of each x-square) as part of the \othellogrid command, but people may prefer to leave them out. So there's a separate command to put them in. +%-------Dot markings------- +\newcommand{\dotmarkings}{% +\put(48,48){\circle*{2.4}} +\put(48,144){\circle*{2.4}} +\put(144,144){\circle*{2.4}} +\put(144,48){\circle*{2.4}} +} + + +%------Row and Column Labels-----% +%Diagrams in some places, e.g. the British Othello Federation newsletter, leave off grid references. +%Note the co-ordinates here are given relative to the picture box that contains the grid, which is 192x192 units and places bounding lines at (0,0)(left edge and bottom edge), (0,192)(top edge), and (192,0)(right edge). The co-ordinates below all fall *outside* this box. This seems like the neatest way of keeping the grid as a separate module from the grid labels. To ensure the labels, when used, don't bleed into the text surrounding a board diagram the grid is housed inside of a larger, 208x208 unit, box as part of the othelloboard environment. +\newcommand{\gridrefs}{% +\put(-10,10){\footnotesize{8}} +\put(-10,34){\footnotesize{7}} +\put(-10,58){\footnotesize{6}} +\put(-10,82){\footnotesize{5}} +\put(-10,106){\footnotesize{4}} +\put(-10,130){\footnotesize{3}} +\put(-10,154){\footnotesize{2}} +\put(-10,178){\footnotesize{1}} +\put(9.5,197){\footnotesize{a}} +\put(33.5,197){\footnotesize{b}} +\put(57.5,197){\footnotesize{c}} +\put(81.5,197){\footnotesize{d}} +\put(105.5,197){\footnotesize{e}} +\put(129.5,197){\footnotesize{f}} +\put(153.5,197){\footnotesize{g}} +\put(177.5,197){\footnotesize{h}} +} + +%-------Define Environments to shorten the code required for each diagram------- +% To be used with \lrbox to work around environment definition restrictions on having unclosed braces in the begin code. +\newsavebox{\fmboard}% + +% Instead of a counter to work around inability to use argument values for an environment definition in the end code, and the inability to pass counter values set in the begin code on to the end code. +\newcommand{\scalefactor}{1}% + +% The othelloboard environment +% The use of \frame is to put a clean border around the board, with definite corners. The way that LaTeX draws lines means that orthogonal lines from the same point don't form a nice corner. This starts to be noticeable with larger boards. +\newenvironment{othelloboard}[1]% +{\renewcommand{\scalefactor}{#1} \begin{lrbox}{\fmboard}\begin{picture}(192,192)\resetalldisccolours \othellogrid \gridrefs} +{\end{picture} \end{lrbox} \scalebox{\scalefactor}{\begin{picture}(208,208)(-16,0) \frame{\usebox{\fmboard}} \end{picture}}} + +%The othelloboardnorefs environment +\newenvironment{othelloboardnorefs}[1]% +{\renewcommand{\scalefactor}{#1} \begin{lrbox}{\fmboard}\begin{picture}(192,192) \othellogrid} +{\end{picture} \end{lrbox} \scalebox{\scalefactor}{\begin{picture}(192,192)(0,0) \frame{\usebox{\fmboard}} \resetalldisccolours \end{picture}}} + + +%---- Commands used in the appendix of the documentation, in the example of counting discs using disccolourxy counters. +\newcounter{numberwdiscs}% counter used in the following command for totting up the number of white discs +\newcommand{\countwhitediscs}{% If the value of the disccolour counter at a square is 1, increment numberwdiscs, otherwise do nothing +\ifthenelse{\equal{\value{disccolouraa}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourab}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourac}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourad}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourae}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolouraf}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourag}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourah}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourba}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbb}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbc}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbd}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbe}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbf}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbg}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbh}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourca}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcb}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcc}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcd}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolource}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcf}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcg}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourch}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourda}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdb}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdc}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdd}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourde}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdf}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdg}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdh}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourea}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloureb}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourec}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloured}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolouree}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolouref}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloureg}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloureh}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfa}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfb}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfc}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfd}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfe}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourff}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfg}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfh}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourga}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgb}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgc}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgd}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourge}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgf}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgg}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgh}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourha}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhb}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhc}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhd}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhe}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhf}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhg}}{1}}{\addtocounter{numberwdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhh}}{1}}{\addtocounter{numberwdiscs}{1}}{} +} + + +\newcounter{numberbdiscs} +\newcommand{\countblackdiscs}{% +\ifthenelse{\equal{\value{disccolouraa}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourab}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourac}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourad}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourae}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolouraf}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourag}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourah}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourba}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbb}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbc}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbd}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbe}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbf}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbg}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourbh}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourca}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcb}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcc}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcd}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolource}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcf}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourcg}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourch}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourda}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdb}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdc}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdd}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourde}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdf}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdg}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourdh}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourea}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloureb}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourec}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloured}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolouree}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolouref}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloureg}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccoloureh}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfa}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfb}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfc}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfd}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfe}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourff}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfg}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourfh}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourga}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgb}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgc}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgd}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourge}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgf}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgg}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourgh}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourha}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhb}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhc}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhd}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhe}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhf}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhg}}{2}}{\addtocounter{numberbdiscs}{1}}{} +\ifthenelse{\equal{\value{disccolourhh}}{2}}{\addtocounter{numberbdiscs}{1}}{} +} + + +%----- Command for placing annotations according to square name. Puts '#2' at square #1. +\newcommand{\posannotation}[2]{% +\ifthenelse{\equal{#1}{A1} \OR \equal{#1}{a1}}{\put(2,176.5){\othelloannotation{\value{disccolouraa}}{#2}}}{} +\ifthenelse{\equal{#1}{B1} \OR \equal{#1}{b1}}{\put(26,176.5){\othelloannotation{\value{disccolourba}}{#2}}}{} +\ifthenelse{\equal{#1}{C1} \OR \equal{#1}{c1}}{\put(50,176.5){\othelloannotation{\value{disccolourca}}{#2}}}{} +\ifthenelse{\equal{#1}{D1} \OR \equal{#1}{d1}}{\put(74,176.5){\othelloannotation{\value{disccolourda}}{#2}}}{} +\ifthenelse{\equal{#1}{E1} \OR \equal{#1}{e1}}{\put(98,176.5){\othelloannotation{\value{disccolourea}}{#2}}}{} +\ifthenelse{\equal{#1}{F1} \OR \equal{#1}{f1}}{\put(122,176.5){\othelloannotation{\value{disccolourfa}}{#2}}}{} +\ifthenelse{\equal{#1}{G1} \OR \equal{#1}{g1}}{\put(146,176.5){\othelloannotation{\value{disccolourga}}{#2}}}{} +\ifthenelse{\equal{#1}{H1} \OR \equal{#1}{h1}}{\put(170,176.5){\othelloannotation{\value{disccolourha}}{#2}}}{} +\ifthenelse{\equal{#1}{A2} \OR \equal{#1}{a2}}{\put(2,152.5){\othelloannotation{\value{disccolourab}}{#2}}}{} +\ifthenelse{\equal{#1}{B2} \OR \equal{#1}{b2}}{\put(26,152.5){\othelloannotation{\value{disccolourbb}}{#2}}}{} +\ifthenelse{\equal{#1}{C2} \OR \equal{#1}{c2}}{\put(50,152.5){\othelloannotation{\value{disccolourcb}}{#2}}}{} +\ifthenelse{\equal{#1}{D2} \OR \equal{#1}{d2}}{\put(74,152.5){\othelloannotation{\value{disccolourdb}}{#2}}}{} +\ifthenelse{\equal{#1}{E2} \OR \equal{#1}{e2}}{\put(98,152.5){\othelloannotation{\value{disccoloureb}}{#2}}}{} +\ifthenelse{\equal{#1}{F2} \OR \equal{#1}{f2}}{\put(122,152.5){\othelloannotation{\value{disccolourfb}}{#2}}}{} +\ifthenelse{\equal{#1}{G2} \OR \equal{#1}{g2}}{\put(146,152.5){\othelloannotation{\value{disccolourgb}}{#2}}}{} +\ifthenelse{\equal{#1}{H2} \OR \equal{#1}{h2}}{\put(170,152.5){\othelloannotation{\value{disccolourhb}}{#2}}}{} +\ifthenelse{\equal{#1}{A3} \OR \equal{#1}{a3}}{\put(2,128.5){\othelloannotation{\value{disccolourac}}{#2}}}{} +\ifthenelse{\equal{#1}{B3} \OR \equal{#1}{b3}}{\put(26,128.5){\othelloannotation{\value{disccolourbc}}{#2}}}{} +\ifthenelse{\equal{#1}{C3} \OR \equal{#1}{c3}}{\put(50,128.5){\othelloannotation{\value{disccolourcc}}{#2}}}{} +\ifthenelse{\equal{#1}{D3} \OR \equal{#1}{d3}}{\put(74,128.5){\othelloannotation{\value{disccolourdc}}{#2}}}{} +\ifthenelse{\equal{#1}{E3} \OR \equal{#1}{e3}}{\put(98,128.5){\othelloannotation{\value{disccolourec}}{#2}}}{} +\ifthenelse{\equal{#1}{F3} \OR \equal{#1}{f3}}{\put(122,128.5){\othelloannotation{\value{disccolourfc}}{#2}}}{} +\ifthenelse{\equal{#1}{G3} \OR \equal{#1}{g3}}{\put(146,128.5){\othelloannotation{\value{disccolourgc}}{#2}}}{} +\ifthenelse{\equal{#1}{H3} \OR \equal{#1}{h3}}{\put(170,128.5){\othelloannotation{\value{disccolourhc}}{#2}}}{} +\ifthenelse{\equal{#1}{A4} \OR \equal{#1}{a4}}{\put(2,104.5){\othelloannotation{\value{disccolourad}}{#2}}}{} +\ifthenelse{\equal{#1}{B4} \OR \equal{#1}{b4}}{\put(26,104.5){\othelloannotation{\value{disccolourbd}}{#2}}}{} +\ifthenelse{\equal{#1}{C4} \OR \equal{#1}{c4}}{\put(50,104.5){\othelloannotation{\value{disccolourcd}}{#2}}}{} +\ifthenelse{\equal{#1}{D4} \OR \equal{#1}{d4}}{\put(74,104.5){\othelloannotation{\value{disccolourdd}}{#2}}}{} +\ifthenelse{\equal{#1}{E4} \OR \equal{#1}{e4}}{\put(98,104.5){\othelloannotation{\value{disccoloured}}{#2}}}{} +\ifthenelse{\equal{#1}{F4} \OR \equal{#1}{f4}}{\put(122,104.5){\othelloannotation{\value{disccolourfd}}{#2}}}{} +\ifthenelse{\equal{#1}{G4} \OR \equal{#1}{g4}}{\put(146,104.5){\othelloannotation{\value{disccolourgd}}{#2}}}{} +\ifthenelse{\equal{#1}{H4} \OR \equal{#1}{h4}}{\put(170,104.5){\othelloannotation{\value{disccolourhd}}{#2}}}{} +\ifthenelse{\equal{#1}{A5} \OR \equal{#1}{a5}}{\put(2,80.5){\othelloannotation{\value{disccolourae}}{#2}}}{} +\ifthenelse{\equal{#1}{B5} \OR \equal{#1}{b5}}{\put(26,80.5){\othelloannotation{\value{disccolourbe}}{#2}}}{} +\ifthenelse{\equal{#1}{C5} \OR \equal{#1}{c5}}{\put(50,80.5){\othelloannotation{\value{disccolource}}{#2}}}{} +\ifthenelse{\equal{#1}{D5} \OR \equal{#1}{d5}}{\put(74,80.5){\othelloannotation{\value{disccolourde}}{#2}}}{} +\ifthenelse{\equal{#1}{E5} \OR \equal{#1}{e5}}{\put(98,80.5){\othelloannotation{\value{disccolouree}}{#2}}}{} +\ifthenelse{\equal{#1}{F5} \OR \equal{#1}{f5}}{\put(122,80.5){\othelloannotation{\value{disccolourfe}}{#2}}}{} +\ifthenelse{\equal{#1}{G5} \OR \equal{#1}{g5}}{\put(146,80.5){\othelloannotation{\value{disccolourge}}{#2}}}{} +\ifthenelse{\equal{#1}{H5} \OR \equal{#1}{h5}}{\put(170,80.5){\othelloannotation{\value{disccolourhe}}{#2}}}{} +\ifthenelse{\equal{#1}{A6} \OR \equal{#1}{a6}}{\put(2,56.5){\othelloannotation{\value{disccolouraf}}{#2}}}{} +\ifthenelse{\equal{#1}{B6} \OR \equal{#1}{b6}}{\put(26,56.5){\othelloannotation{\value{disccolourbf}}{#2}}}{} +\ifthenelse{\equal{#1}{C6} \OR \equal{#1}{c6}}{\put(50,56.5){\othelloannotation{\value{disccolourcf}}{#2}}}{} +\ifthenelse{\equal{#1}{D6} \OR \equal{#1}{d6}}{\put(74,56.5){\othelloannotation{\value{disccolourdf}}{#2}}}{} +\ifthenelse{\equal{#1}{E6} \OR \equal{#1}{e6}}{\put(98,56.5){\othelloannotation{\value{disccolouref}}{#2}}}{} +\ifthenelse{\equal{#1}{F6} \OR \equal{#1}{f6}}{\put(122,56.5){\othelloannotation{\value{disccolourff}}{#2}}}{} +\ifthenelse{\equal{#1}{G6} \OR \equal{#1}{g6}}{\put(146,56.5){\othelloannotation{\value{disccolourgf}}{#2}}}{} +\ifthenelse{\equal{#1}{H6} \OR \equal{#1}{h6}}{\put(170,56.5){\othelloannotation{\value{disccolourhf}}{#2}}}{} +\ifthenelse{\equal{#1}{A7} \OR \equal{#1}{a7}}{\put(2,32.5){\othelloannotation{\value{disccolourag}}{#2}}}{} +\ifthenelse{\equal{#1}{B7} \OR \equal{#1}{b7}}{\put(26,32.5){\othelloannotation{\value{disccolourbg}}{#2}}}{} +\ifthenelse{\equal{#1}{C7} \OR \equal{#1}{c7}}{\put(50,32.5){\othelloannotation{\value{disccolourcg}}{#2}}}{} +\ifthenelse{\equal{#1}{D7} \OR \equal{#1}{d7}}{\put(74,32.5){\othelloannotation{\value{disccolourdg}}{#2}}}{} +\ifthenelse{\equal{#1}{E7} \OR \equal{#1}{e7}}{\put(98,32.5){\othelloannotation{\value{disccoloureg}}{#2}}}{} +\ifthenelse{\equal{#1}{F7} \OR \equal{#1}{f7}}{\put(122,32.5){\othelloannotation{\value{disccolourfg}}{#2}}}{} +\ifthenelse{\equal{#1}{G7} \OR \equal{#1}{g7}}{\put(146,32.5){\othelloannotation{\value{disccolourgg}}{#2}}}{} +\ifthenelse{\equal{#1}{H7} \OR \equal{#1}{h7}}{\put(170,32.5){\othelloannotation{\value{disccolourhg}}{#2}}}{} +\ifthenelse{\equal{#1}{A8} \OR \equal{#1}{a8}}{\put(2,8.5){\othelloannotation{\value{disccolourah}}{#2}}}{} +\ifthenelse{\equal{#1}{B8} \OR \equal{#1}{b8}}{\put(26,8.5){\othelloannotation{\value{disccolourbh}}{#2}}}{} +\ifthenelse{\equal{#1}{C8} \OR \equal{#1}{c8}}{\put(50,8.5){\othelloannotation{\value{disccolourch}}{#2}}}{} +\ifthenelse{\equal{#1}{D8} \OR \equal{#1}{d8}}{\put(74,8.5){\othelloannotation{\value{disccolourdh}}{#2}}}{} +\ifthenelse{\equal{#1}{E8} \OR \equal{#1}{e8}}{\put(98,8.5){\othelloannotation{\value{disccoloureh}}{#2}}}{} +\ifthenelse{\equal{#1}{F8} \OR \equal{#1}{f8}}{\put(122,8.5){\othelloannotation{\value{disccolourfh}}{#2}}}{} +\ifthenelse{\equal{#1}{G8} \OR \equal{#1}{g8}}{\put(146,8.5){\othelloannotation{\value{disccolourgh}}{#2}}}{} +\ifthenelse{\equal{#1}{H8} \OR \equal{#1}{h8}}{\put(170,8.5){\othelloannotation{\value{disccolourhh}}{#2}}}{} +} + +%---- Automated transcript creation +%---- Command for taking two characters at a time and writing a number at the square represented by the character pair, starting with 1. + +\newcommand{\drawtranscript}[1]{% +\noblanks[q]{#1}% + \StrMid{\thestring}{1}{2}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{1} + \StrMid{\thestring}{3}{4}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{2} + \StrMid{\thestring}{5}{6}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{3} + \StrMid{\thestring}{7}{8}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{4} + \StrMid{\thestring}{9}{10}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{5} + \StrMid{\thestring}{11}{12}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{6} + \StrMid{\thestring}{13}{14}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{7} + \StrMid{\thestring}{15}{16}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{8} + \StrMid{\thestring}{17}{18}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{9} + \StrMid{\thestring}{19}{20}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{10} + \StrMid{\thestring}{21}{22}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{11} + \StrMid{\thestring}{23}{24}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{12} + \StrMid{\thestring}{25}{26}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{13} + \StrMid{\thestring}{27}{28}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{14} + \StrMid{\thestring}{29}{30}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{15} + \StrMid{\thestring}{31}{32}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{16} + \StrMid{\thestring}{33}{34}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{17} + \StrMid{\thestring}{35}{36}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{18} + \StrMid{\thestring}{37}{38}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{19} + \StrMid{\thestring}{39}{40}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{20} + \StrMid{\thestring}{41}{42}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{21} + \StrMid{\thestring}{43}{44}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{22} + \StrMid{\thestring}{45}{46}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{23} + \StrMid{\thestring}{47}{48}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{24} + \StrMid{\thestring}{49}{50}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{25} + \StrMid{\thestring}{51}{52}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{26} + \StrMid{\thestring}{53}{54}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{27} + \StrMid{\thestring}{55}{56}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{28} + \StrMid{\thestring}{57}{58}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{29} + \StrMid{\thestring}{59}{60}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{30} + \StrMid{\thestring}{61}{62}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{31} + \StrMid{\thestring}{63}{64}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{32} + \StrMid{\thestring}{65}{66}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{33} + \StrMid{\thestring}{67}{68}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{34} + \StrMid{\thestring}{69}{70}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{35} + \StrMid{\thestring}{71}{72}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{36} + \StrMid{\thestring}{73}{74}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{37} + \StrMid{\thestring}{75}{76}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{38} + \StrMid{\thestring}{77}{78}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{39} + \StrMid{\thestring}{79}{80}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{40} + \StrMid{\thestring}{81}{82}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{41} + \StrMid{\thestring}{83}{84}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{42} + \StrMid{\thestring}{85}{86}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{43} + \StrMid{\thestring}{87}{88}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{44} + \StrMid{\thestring}{89}{90}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{45} + \StrMid{\thestring}{91}{92}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{46} + \StrMid{\thestring}{93}{94}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{47} + \StrMid{\thestring}{95}{96}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{48} + \StrMid{\thestring}{97}{98}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{49} + \StrMid{\thestring}{99}{100}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{50} + \StrMid{\thestring}{101}{102}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{51} + \StrMid{\thestring}{103}{104}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{52} + \StrMid{\thestring}{105}{106}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{53} + \StrMid{\thestring}{107}{108}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{54} + \StrMid{\thestring}{109}{110}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{55} + \StrMid{\thestring}{111}{112}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{56} + \StrMid{\thestring}{113}{114}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{57} + \StrMid{\thestring}{115}{116}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{58} + \StrMid{\thestring}{117}{118}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{59} + \StrMid{\thestring}{119}{120}[\mytwochars]% + \expandafter\posannotation\expandafter{\mytwochars}{60} + } + +%------------Commands for drawing discs according to whether argument is dash, O or X. +\newcommand{\othellodiscfromstring}[1]{% +\ifthenelse{\equal{#1}{-}}{}{}% +\ifthenelse{\equal{#1}{O} \or \equal{#1}{o}}{\whitedisc}{}% +\ifthenelse{\equal{#1}{X} \or \equal{#1}{x}}{\blackdisc}{}% +%\ifthenelse{#1=3}{\whitediamond}{}% +%\ifthenelse{#1=4}{\blackdiamond}{}% +} + +%----- Command for automated board creation from string of Os, Xs and -s. Sets values for each disccolourxy counter as well. +\newcommand{\drawboardfromstring}[1]{% +\StrMid{#1}{1}{1}[\mychar]% + \put(12,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolouraa}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolouraa}{1}}{}}% +\StrMid{#1}{2}{2}[\mychar]% + \put(36,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourba}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourba}{1}}{}}% +\StrMid{#1}{3}{3}[\mychar]% + \put(60,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourca}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourca}{1}}{}}% +\StrMid{#1}{4}{4}[\mychar]% + \put(84,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourda}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourda}{1}}{}}% +\StrMid{#1}{5}{5}[\mychar]% + \put(108,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourea}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourea}{1}}{}}% +\StrMid{#1}{6}{6}[\mychar]% + \put(132,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfa}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfa}{1}}{}}% +\StrMid{#1}{7}{7}[\mychar]% + \put(156,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourga}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourga}{1}}{}}% +\StrMid{#1}{8}{8}[\mychar]% + \put(180,180){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourha}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourha}{1}}{}}% +\StrMid{#1}{9}{9}[\mychar]% + \put(12,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourab}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourab}{1}}{}}% +\StrMid{#1}{10}{10}[\mychar]% + \put(36,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourbb}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourbb}{1}}{}}% +\StrMid{#1}{11}{11}[\mychar]% + \put(60,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourcb}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourcb}{1}}{}}% +\StrMid{#1}{12}{12}[\mychar]% + \put(84,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourdb}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourdb}{1}}{}}% +\StrMid{#1}{13}{13}[\mychar]% + \put(108,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccoloureb}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccoloureb}{1}}{}}% +\StrMid{#1}{14}{14}[\mychar]% + \put(132,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfb}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfb}{1}}{}}% +\StrMid{#1}{15}{15}[\mychar]% + \put(156,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourgb}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourgb}{1}}{}}% +\StrMid{#1}{16}{16}[\mychar]% + \put(180,156){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourhb}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourhb}{1}}{}}% +\StrMid{#1}{17}{17}[\mychar]% + \put(12,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourac}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourac}{1}}{}}% +\StrMid{#1}{18}{18}[\mychar]% + \put(36,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourbc}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourbc}{1}}{}}% +\StrMid{#1}{19}{19}[\mychar]% + \put(60,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourcc}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourcc}{1}}{}}% +\StrMid{#1}{20}{20}[\mychar]% + \put(84,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourdc}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourdc}{1}}{}}% +\StrMid{#1}{21}{21}[\mychar]% + \put(108,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourec}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourec}{1}}{}}% +\StrMid{#1}{22}{22}[\mychar]% + \put(132,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfc}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfc}{1}}{}}% +\StrMid{#1}{23}{23}[\mychar]% + \put(156,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourgc}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourgc}{1}}{}}% +\StrMid{#1}{24}{24}[\mychar]% + \put(180,132){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourhc}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourhc}{1}}{}}% +\StrMid{#1}{25}{25}[\mychar]% + \put(12,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourad}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourad}{1}}{}}% +\StrMid{#1}{26}{26}[\mychar]% + \put(36,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourbd}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourbd}{1}}{}}% +\StrMid{#1}{27}{27}[\mychar]% + \put(60,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourcd}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourcd}{1}}{}}% +\StrMid{#1}{28}{28}[\mychar]% + \put(84,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourdd}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourdd}{1}}{}}% +\StrMid{#1}{29}{29}[\mychar]% + \put(108,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccoloured}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccoloured}{1}}{}}% +\StrMid{#1}{30}{30}[\mychar]% + \put(132,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfd}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfd}{1}}{}}% +\StrMid{#1}{31}{31}[\mychar]% + \put(156,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourgd}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourgd}{1}}{}}% +\StrMid{#1}{32}{32}[\mychar]% + \put(180,108){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourha}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourha}{1}}{}}% +\StrMid{#1}{33}{33}[\mychar]% + \put(12,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourae}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourae}{1}}{}}% +\StrMid{#1}{34}{34}[\mychar]% + \put(36,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourbe}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourbe}{1}}{}}% +\StrMid{#1}{35}{35}[\mychar]% + \put(60,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolource}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolource}{1}}{}}% +\StrMid{#1}{36}{36}[\mychar]% + \put(84,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourde}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourde}{1}}{}}% +\StrMid{#1}{37}{37}[\mychar]% + \put(108,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolouree}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolouree}{1}}{}}% +\StrMid{#1}{38}{38}[\mychar]% + \put(132,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfe}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfe}{1}}{}}% +\StrMid{#1}{39}{39}[\mychar]% + \put(156,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourge}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourge}{1}}{}}% +\StrMid{#1}{40}{40}[\mychar]% + \put(180,84){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourhe}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourhe}{1}}{}}% +\StrMid{#1}{41}{41}[\mychar]% + \put(12,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolouraf}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolouraf}{1}}{}}% +\StrMid{#1}{42}{42}[\mychar]% + \put(36,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourbf}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourbf}{1}}{}}% +\StrMid{#1}{43}{43}[\mychar]% + \put(60,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourcf}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourcf}{1}}{}}% +\StrMid{#1}{44}{44}[\mychar]% + \put(84,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourdf}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourdf}{1}}{}}% +\StrMid{#1}{45}{45}[\mychar]% + \put(108,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolouref}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolouref}{1}}{}}% +\StrMid{#1}{46}{46}[\mychar]% + \put(132,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourff}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourff}{1}}{}}% +\StrMid{#1}{47}{47}[\mychar]% + \put(156,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourgf}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourgf}{1}}{}}% +\StrMid{#1}{48}{48}[\mychar]% + \put(180,60){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourhf}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourhf}{1}}{}}% +\StrMid{#1}{49}{49}[\mychar]% + \put(12,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourag}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourag}{1}}{}}% +\StrMid{#1}{50}{50}[\mychar]% + \put(36,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourbg}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourbg}{1}}{}}% +\StrMid{#1}{51}{51}[\mychar]% + \put(60,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourcg}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourcg}{1}}{}}% +\StrMid{#1}{52}{52}[\mychar]% + \put(84,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourdg}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourdg}{1}}{}}% +\StrMid{#1}{53}{53}[\mychar]% + \put(108,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccoloureg}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccoloureg}{1}}{}}% +\StrMid{#1}{54}{54}[\mychar]% + \put(132,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfg}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfg}{1}}{}}% +\StrMid{#1}{55}{55}[\mychar]% + \put(156,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourgg}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourgg}{1}}{}}% +\StrMid{#1}{56}{56}[\mychar]% + \put(180,36){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourhg}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourhg}{1}}{}}% +\StrMid{#1}{57}{57}[\mychar]% + \put(12,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourah}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourah}{1}}{}}% +\StrMid{#1}{58}{58}[\mychar]% + \put(36,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourbh}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourbh}{1}}{}}% +\StrMid{#1}{59}{59}[\mychar]% + \put(60,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourch}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourch}{1}}{}}% +\StrMid{#1}{60}{60}[\mychar]% + \put(84,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourdh}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourdh}{1}}{}}% +\StrMid{#1}{61}{61}[\mychar]% + \put(108,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccoloureh}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccoloureh}{1}}{}}% +\StrMid{#1}{62}{62}[\mychar]% + \put(132,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfh}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfh}{1}}{}}% +\StrMid{#1}{63}{63}[\mychar]% + \put(156,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourgh}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourgh}{1}}{}}% +\StrMid{#1}{64}{64}[\mychar]% + \put(180,12){\expandafter\othellodiscfromstring\expandafter{\mychar}}% + \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourhh}{2}}{% + \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourhh}{1}}{}}% +} \ No newline at end of file -- cgit v1.2.3