summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/othelloboard/README11
-rw-r--r--Master/texmf-dist/doc/latex/othelloboard/README.TEXLIVE7
-rw-r--r--Master/texmf-dist/doc/latex/othelloboard/othelloboard.pdfbin137880 -> 156198 bytes
-rw-r--r--Master/texmf-dist/doc/latex/othelloboard/othelloboard.tex40
-rw-r--r--Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty196
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
6 files changed, 204 insertions, 51 deletions
diff --git a/Master/texmf-dist/doc/latex/othelloboard/README b/Master/texmf-dist/doc/latex/othelloboard/README
index f1e8f10bdf1..53d1e2fade3 100644
--- a/Master/texmf-dist/doc/latex/othelloboard/README
+++ b/Master/texmf-dist/doc/latex/othelloboard/README
@@ -14,4 +14,13 @@ This work has the LPPL maintenance status `maintained'.
The Current Maintainer of this work is Steven Hall (stevenhall.uk@gmail.com).
-This work consists of the files othelloboard.sty and othelloboard.pdf.
+This work consists of the files:
+
+- othelloboard.sty
+- othelloboard.pdf (documentation)
+- othelloboard.tex (source for documentation)
+
+Many thanks to Brian Rose for permission to typeset material from his book Othello: A
+Minute to Learn … A Lifetime to Master in the example file:
+
+- example-rose-chps1-2.pdf \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/othelloboard/README.TEXLIVE b/Master/texmf-dist/doc/latex/othelloboard/README.TEXLIVE
new file mode 100644
index 00000000000..3a84b7c3f0f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/othelloboard/README.TEXLIVE
@@ -0,0 +1,7 @@
+The following files have been removed in the TeX Live installation of
+the current package, typically due to duplication, lack of space, or
+missing source code. You can find these files on CTAN at
+ http://mirror.ctan.org/macros/latex/contrib/othelloboard
+If questions or concerns, email tex-live@tug.org.
+
+ example-rose-chps1-2.pdf
diff --git a/Master/texmf-dist/doc/latex/othelloboard/othelloboard.pdf b/Master/texmf-dist/doc/latex/othelloboard/othelloboard.pdf
index 3462339256f..aedd0be159d 100644
--- a/Master/texmf-dist/doc/latex/othelloboard/othelloboard.pdf
+++ b/Master/texmf-dist/doc/latex/othelloboard/othelloboard.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/othelloboard/othelloboard.tex b/Master/texmf-dist/doc/latex/othelloboard/othelloboard.tex
index 851e7c14d5b..aab722e8024 100644
--- a/Master/texmf-dist/doc/latex/othelloboard/othelloboard.tex
+++ b/Master/texmf-dist/doc/latex/othelloboard/othelloboard.tex
@@ -8,15 +8,16 @@
\usepackage{appendix}
\usepackage[parfill]{parskip} % Activate to begin paragraphs with an empty line rather than an indent
\usepackage{othelloboard}
-\usepackage{natbib}
+\usepackage{hyperref}
+%\usepackage{natbib}
+
%%% TITLE %%%
-\newcommand{\fileversion}{v1.01}
-\newcommand{\filedate}{28/06/2011}
+\newcommand{\fileversion}{v1.2}
\title{The \textsf{othelloboard} package%
-\thanks{This document corresponds to \textsf{othelloboard}~\fileversion, dated~\filedate.}
+\thanks{This document corresponds to \textsf{othelloboard}~\fileversion. Thanks to Brian Rose for permission to typeset material from his book for the example file: \texttt{example-rose-chps1-2.pdf}.}
}\author{Steven Hall \\ \texttt{stevenhall.uk@gmail.com}}
-\date{28 June 2011}
+\date{18 August 2011}
%% DOCUMENT %%
@@ -25,9 +26,11 @@
\pagestyle{plain}
\maketitle
+\tableofcontents
%------
\section{Drawing a simple board diagram}
+\begin{center}
\begin{othelloboard}{1}
\gridrefs
\dotmarkings
@@ -39,10 +42,8 @@
\othelloarraysixthrow {0}{0}{2}{1}{1}{1}{0}{0}
\othelloarrayseventhrow {0}{0}{0}{0}{0}{0}{0}{0}
\othelloarrayeighthrow {0}{0}{0}{0}{0}{0}{0}{0}
-%annotations
-%\put(0,-14){\small{Figure 1}}
\end{othelloboard}
-
+\end{center}
The board above was produced by the following list of commands:
\begin{verbatimtab}
@@ -73,7 +74,7 @@ You should also see that where you choose to put a number in the grid determines
\subsection{The \texttt{othelloboard} environment}
\subsubsection{The basic commands}
-Look again at the opening and closing lines of code for the diagram above.
+Look again at the opening and closing lines of code for the diagram in the previous section.
\begin{description}
\item{\verb=\begin{othelloboard}{1}=} \verb=% = Mandatory argument for board size.
@@ -124,7 +125,7 @@ Here is a board drawn at size 0.75 without \verb=\dotmarkings=, and with the \ve
\ \\
Note the use of black diamonds to show the discs just flipped by the black disc placed at e7. This is the convention followed, e.g., in Brian Rose's book (Rose 2005).
-\subsubsection{Useful tip} \label{tabtips}
+\paragraph{Useful tip}\label{tabtips}
You may find that it helps see where you are putting discs if you align all of the rows of numbers in the array. You can do this (as with the examples given in this document) by putting tabs between the command name and its first argument. Don't use spaces though, as unlike tabs (which aren't read as gaps when the file compiles), spaces will break the commands and cause errors.
\verb=\othelloarrayfirstrow= \begin{picture}(30,30)\put(20,8){\vector(-1,-2){5}}\put(0,12){\textit{tabs not spaces}}\end{picture}\verb= {0}{1}{1}{2}{1}{0}{0}{0}=\\
@@ -434,6 +435,8 @@ To create a board diagram from this string, we simply feed it as an argument int
\end{minipage}
\end{center}
+The characters \verb=3= and \verb=4= can also be included in the string for white and black diamonds (respectively).
+
\section{Tweaks}
Feel free to tweak the code in the \verb=othelloboard.sty= file if the diagrams aren't exactly how you like them. I've commented on it quite thoroughly so that it should be easy to see which bit to tweak in order, e.g., to change the font size of the grid references, or the size of the discs relative to the grid.\\
@@ -551,6 +554,9 @@ The text over here is in the \verb=minipage= on the right. Both \verb=minipage=s
The annotations are in a san-serif font this time.
\end{minipage}
\end{center}
+\bigskip
+
+For more examples of layouts using diagrams of different sizes, see the file: \texttt{example\--rose\--chps1\--2.pdf}.
\subsection{Code for the examples in this section}
@@ -650,7 +656,7 @@ The annotations are in a san-serif font this time.
They work best within a \verb=picture= environment using the \verb=\put= command for accurate placing. Note that the shapes are positioned from their centre-points. These are the same sub-commands that the \verb=\othelloarray=\ldots\verb=row= commands call upon when they execute, so using these ensures the size and style of shapes will be the same as those appearing within board diagrams within the same document.
\subsection{Counters}
-The \textsf{othelloboard} package uses counters to store the value of discs / diamonds placed on each square (this is the same value you input in order to draw the discs / diamonds). The package currently only uses these counters to determine the text colour of annotations, but these values are available for the current board diagram until another is drawn (the counters are all reset initially as part of the code for a new diagram).
+The \textsf{othelloboard} package uses counters to store the value of discs/diamonds placed on each square (this is the same value you input in order to draw the discs/diamonds). The package currently only uses these counters to determine the text colour of annotations, but these values are available for the current board diagram until another is drawn (the counters are all reset initially as part of the code for a new diagram).
The counter names follow this format:\\
@@ -712,12 +718,20 @@ Admittedly this doesn't seem like a very useful feature, but if you like playing
\item Forgetting to include an \verb=\end{othelloboard}= declaration at the end of each diagram.
\end{itemize}
+\section{Changes}
+\subsubsection*{18 August 2011}
+\begin{itemize}
+\item Extended the \verb=\drawboardfromstring= command to recognize the characters \verb=3= and \verb=4= (for diamonds) in a string.
+\item Included example material typeset using this package -- two chapters from Brian Rose's book.
+\end{itemize}
+
\bibliographystyle{phil_review}
\begin{thebibliography}{1}
-\bibitem{Rose2005} Brian Rose (2005). \emph{Othello: A Minute to Learn, A Lifetime to Master}.
+\bibitem{Rose2005} Brian Rose (2005). \emph{Othello: A Minute to Learn \ldots\ A Lifetime to Master}.\\[6pt]
+The official version can be downloaded from http://othellogateway.com/rose/book.pdf.
\end{thebibliography}
-\vspace{12mm}
+\clearpage
\makebox[0pt][l]{\hspace{-64pt}
\begin{othelloboard}{2.6}
diff --git a/Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty b/Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty
index 435fc088208..e2bf8e2cd6f 100644
--- a/Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty
+++ b/Master/texmf-dist/tex/latex/othelloboard/othelloboard.sty
@@ -17,7 +17,7 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{othelloboard}[2011/06/28 Othello board diagram drawing package by Steven Hall]
+\ProvidesPackage{othelloboard}[2011/18/08 Othello board diagram drawing package by Steven Hall]
\RequirePackage{graphicx}
\RequirePackage{pict2e}
\RequirePackage{ifthen}
@@ -39,19 +39,13 @@
%------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}%
-{}%
-}}}}}
+\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}
@@ -339,8 +333,8 @@
%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}}}
+{\renewcommand{\scalefactor}{#1} \begin{lrbox}{\fmboard}\begin{picture}(192,192)\resetalldisccolours \othellogrid}
+{\end{picture} \end{lrbox} \scalebox{\scalefactor}{\begin{picture}(192,192)(0,0) \frame{\usebox{\fmboard}} \end{picture}}}
%---- Commands used in the appendix of the documentation, in the example of counting discs using disccolourxy counters.
@@ -677,271 +671,399 @@
\expandafter\posannotation\expandafter{\mytwochars}{60}
}
-%------------Commands for drawing discs according to whether argument is dash, O or X.
+%------------Commands for drawing discs according to whether argument is dash, O or X. Now draws diamonds for 3 and 4 as argument too.
\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}{}%
+\ifthenelse{\equal{#1}{3}}{\whitediamond}{}%
+\ifthenelse{\equal{#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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolouraa}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolouraa}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolouraa}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolouraa}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourba}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourba}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourba}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourba}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourca}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourca}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourca}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourca}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourda}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourda}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourda}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourda}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourea}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourea}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourea}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourea}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourfa}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourfa}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourfa}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourfa}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourga}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourga}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourga}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourga}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourha}{2}}{}%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourha}{1}}{}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourha}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourha}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourab}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourab}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourbb}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourbb}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourcb}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourcb}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourdb}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourdb}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccoloureb}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccoloureb}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourfb}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourfb}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourgb}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourgb}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourhb}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourhb}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourac}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourac}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourbc}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourbc}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourcc}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourcc}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourdc}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourdc}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourec}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourec}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourfc}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourfc}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourgc}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourgc}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourhc}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourhc}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourad}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourad}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourbd}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourbd}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourcd}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourcd}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourdd}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourdd}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccoloured}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccoloured}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourfd}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourfd}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourgd}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourgd}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{X} \OR \equal{\mychar}{x}}{\setcounter{disccolourhd}{2}}{%
+ \ifthenelse{\equal{\mychar}{O} \OR \equal{\mychar}{o}}{\setcounter{disccolourhd}{1}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourhd}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourhd}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourae}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourae}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourbe}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourbe}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolource}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolource}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourde}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourde}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolouree}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolouree}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourfe}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourfe}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourge}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourge}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourhe}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourhe}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolouraf}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolouraf}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourbf}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourbf}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourcf}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourcf}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourdf}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourdf}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolouref}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolouref}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourff}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourff}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourgf}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourgf}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourhf}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourhf}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourag}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourag}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourbg}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourbg}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourcg}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourcg}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourdg}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourdg}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccoloureg}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccoloureg}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourfg}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourfg}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourgg}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourgg}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourhg}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourhg}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourah}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourah}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourbh}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourbh}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourch}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourch}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourdh}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourdh}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccoloureh}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccoloureh}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourfh}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourfh}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourgh}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourgh}{4}}{}%
\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}}{}}%
+ \ifthenelse{\equal{\mychar}{3}}{\setcounter{disccolourhh}{3}}{}%
+ \ifthenelse{\equal{\mychar}{4}}{\setcounter{disccolourhh}{4}}{}%
} \ No newline at end of file
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index f5263dc1c8b..de3b1f2e6fc 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -2083,6 +2083,7 @@ $standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot'
'jlabels' => 'jlabels.pdf', # no source
'linguex' => 'cgloss4e.sty', # symlink
'numericplots' => '.*\.m', # matlab
+ 'othelloboard' => 'example.*.pdf', # no source
'piechartmp' => 'piechartmp.pdf', # no source
'ptptex' => '(overcite|cite|wrapfig).sty', # duplicated
'stix' => 'STIX_Font_Release_Documentation_2010.pdf', # no source