8

I recently came across a short discussion of the Schwenk dice and thought it would be fun to create the dice with TikZ. I found neat tizpictures for up to 9 dots and adapted the code to 16 dots. I did it without thinking (see below), but as I was typing (fast) it became clear that the code was ugly and the faces were not that pretty either.

Any suggestions on how to make more general code for faces with large numbers of dots and pleasant symmetries? That is, loops and looks.

The red faces are the ones copied from Andrew Swann's code linked above. The blue faces were copied from some domino designs I had at home. The green faces were made up on the spot.

\documentclass{standalone}
\usepackage{xcolor}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{shapes}
\tikzset{%
  dot hidden/.style={},
  line hidden/.style={},
  dot colour/.style={dot hidden/.append style={color=#1}},
  dot colour/.default=black,
  line colour/.style={line hidden/.append style={color=#1}},
  line colour/.default=black,
}%
\usepackage{xparse}
\NewDocumentCommand{\drawdie}{O{}m}{%
\begin{tikzpicture}[x=1cm,y=1cm,radius=0.06,#1]
\draw[rounded corners=1,line hidden] (0,0) rectangle (1,1);
\ifnum#2<10% "standard die"
  \ifodd#2
    \fill[dot hidden] (0.5,0.5) circle;% 1,3,5,7,9
  \fi
  \ifnum#2>1
    \fill[dot hidden] (0.15,0.15) circle;% 2
    \fill[dot hidden] (0.85,0.85) circle;% 3
    \ifnum#2>3
      \fill[dot hidden] (0.15,0.85) circle;% 4
      \fill[dot hidden] (0.85,0.15) circle;% 5
      \ifnum#2>5
        \fill[dot hidden] (0.85,0.5) circle;% 5
        \fill[dot hidden] (0.15,0.5) circle;% 6
        \ifnum#2>7
          \fill[dot hidden] (0.5,0.85) circle;% 7
          \fill[dot hidden] (0.5,0.15) circle;% 8
        \fi
      \fi
    \fi
  \fi
\fi
\ifnum#2>9% "extended die"
  \ifnum#2<13% 
    \fill[dot hidden] (0.15,0.15) circle;
    \fill[dot hidden] (0.15,0.85) circle;
    \fill[dot hidden] (0.85,0.15) circle;
    \fill[dot hidden] (0.85,0.85) circle;
    \fill[dot hidden] (0.15,0.38) circle;
    \fill[dot hidden] (0.15,0.61) circle;
    \fill[dot hidden] (0.85,0.38) circle;
    \fill[dot hidden] (0.85,0.61) circle;
    \ifodd#2
      \fill[dot hidden] (0.50,0.50) circle;
      \fill[dot hidden] (0.50,0.15) circle;
      \fill[dot hidden] (0.50,0.85) circle;
    \else
      \fill[dot hidden] (0.50,0.38) circle;
      \fill[dot hidden] (0.50,0.61) circle;
    \fi
    \ifnum#2>11
      \fill[dot hidden] (0.50,0.15) circle;
      \fill[dot hidden] (0.50,0.85) circle;
    \fi
  \else
    \fill[dot hidden] (0.15,0.15) circle;
    \fill[dot hidden] (0.15,0.85) circle;
    \fill[dot hidden] (0.85,0.15) circle;
    \fill[dot hidden] (0.85,0.85) circle;
    \fill[dot hidden] (0.15,0.38) circle;
    \fill[dot hidden] (0.15,0.61) circle;
    \fill[dot hidden] (0.85,0.38) circle;
    \fill[dot hidden] (0.85,0.61) circle;  
    \fill[dot hidden] (0.38,0.15) circle;
    \fill[dot hidden] (0.38,0.85) circle;
    \fill[dot hidden] (0.61,0.15) circle;
    \fill[dot hidden] (0.61,0.85) circle;
    \ifnum#2<14
      \fill[dot hidden] (0.50,0.50) circle; 
    \fi
    \ifnum#2>13
      \fill[dot hidden] (0.38,0.38) circle;
      \fill[dot hidden] (0.61,0.61) circle;
      \ifnum#2>14      
        \fill[dot hidden] (0.38,0.61) circle; 
        \ifnum#2>15
          \fill[dot hidden] (0.61,0.38) circle;
        \fi
      \fi
    \fi
  \fi
\fi
\end{tikzpicture}%
}%

\newcommand{\dieA}[1]{%
    \drawdie[color=black, line hidden/.append style={fill=red!70}]{#1}}

\newcommand{\dieB}[1]{%
    \drawdie[color=black, line hidden/.append style={fill=blue!50}]{#1}}

\newcommand{\dieC}[1]{%
    \drawdie[color=black, line hidden/.append style={fill=green!50}]{#1}}

\begin{document}
\begin{tikzpicture}
\matrix[matrix of nodes,nodes={rectangle,align=center}]{%
\dieA{1}   & \dieA{2}   & \dieA{3}   & \dieA{4} \\
\dieA{5}   & \dieA{6}   & \dieA{7}   & \dieA{8} \\
\dieA{9}   & \dieB{10} & \dieB{11} & \dieB{12} \\
\dieC{13} & \dieC{14} & \dieC{15} & \dieC{16} \\
};
\end{tikzpicture}
\end{document}

enter image description here

  • 1
    These are already very nice results (+1). My most immediate concern is that you are nesting tikzpictures, which should be avoided, see e.g. here. It is not necessary here either, you could work with pics. Other than that it is probably nontrivial to come up with a macro that allows for an arbitrarily large number of dots. (You could fill the points of the SU(3) root lattice successively but this won't give you the standard dots for the standard dice.) – user121799 Sep 17 '18 at 18:36
  • All three answers are great. As I had to make a selection, I went for marmot's because it was the first answer and marmot had recently helped me with another question where I'd ended up selecting someone else's answer. So with an apology, a big thank you to Leon and Steven! – PatrickT Sep 19 '18 at 17:00
3

Here is a version of your code that avoids nesting of tikzpictures, which also contains some minor changes. Whether my choices of placing the dots are "more symmetric" is probably a matter of taste. I also removed shapes and xcolor as you didn't use them.

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{matrix}
\tikzset{%
  dot hidden/.style={},
  line hidden/.style={},
  dot colour/.style={dot hidden/.append style={color=#1}},
  dot colour/.default=black,
  line colour/.style={line hidden/.append style={color=#1}},
  line colour/.default=black,
}%
\usepackage{xparse}
\tikzset{pics/.cd,
dice/.style args={#1/#2}{code={
\draw[rounded corners=1,line hidden,#1] (0,0) rectangle (1,1);
\ifnum#2<10% "standard die"
  \ifodd#2
    \fill[dot hidden] (0.5,0.5) circle(1.5pt);% 1,3,5,7,9
  \fi
  \ifnum#2>1
    \fill[dot hidden] (0.15,0.15) circle(1.5pt);% 2
    \fill[dot hidden] (0.85,0.85) circle(1.5pt);% 3
    \ifnum#2>3
      \fill[dot hidden] (0.15,0.85) circle(1.5pt);% 4
      \fill[dot hidden] (0.85,0.15) circle(1.5pt);% 5
      \ifnum#2>5
        \fill[dot hidden] (0.85,0.5) circle(1.5pt);% 5
        \fill[dot hidden] (0.15,0.5) circle(1.5pt);% 6
        \ifnum#2>7
          \fill[dot hidden] (0.5,0.85) circle(1.5pt);% 7
          \fill[dot hidden] (0.5,0.15) circle(1.5pt);% 8
        \fi
      \fi
    \fi
  \fi
\fi
\ifnum#2>9% "extended die"
  \ifnum#2<13% 
    \fill[dot hidden] (0.15,0.15) circle(1.5pt);
    \fill[dot hidden] (0.15,0.85) circle(1.5pt);
    \fill[dot hidden] (0.85,0.15) circle(1.5pt);
    \fill[dot hidden] (0.85,0.85) circle(1.5pt);
    \fill[dot hidden] (0.15,0.38) circle(1.5pt);
    \fill[dot hidden] (0.15,0.61) circle(1.5pt);
    \fill[dot hidden] (0.85,0.38) circle(1.5pt);
    \fill[dot hidden] (0.85,0.61) circle(1.5pt);
    \ifodd#2
      \fill[dot hidden] (0.50,0.50) circle(1.5pt);
      \fill[dot hidden] (0.50,0.15) circle(1.5pt);
      \fill[dot hidden] (0.50,0.85) circle(1.5pt);
    \else
      \fill[dot hidden] (0.50,0.15) circle(1.5pt); %<-changed
      \fill[dot hidden] (0.50,0.85) circle(1.5pt); %<-changed
    \fi
    \ifnum#2>11
      \fill[dot hidden] (0.50,0.38) circle(1.5pt); 
      \fill[dot hidden] (0.50,0.61) circle(1.5pt); 
    \fi
  \else % here #2 > 12
    \fill[dot hidden] (0.15,0.15) circle(1.5pt);
    \fill[dot hidden] (0.15,0.85) circle(1.5pt);
    \fill[dot hidden] (0.85,0.15) circle(1.5pt);
    \fill[dot hidden] (0.85,0.85) circle(1.5pt);
    \fill[dot hidden] (0.15,0.38) circle(1.5pt);
    \fill[dot hidden] (0.15,0.61) circle(1.5pt);
    \fill[dot hidden] (0.85,0.38) circle(1.5pt);
    \fill[dot hidden] (0.85,0.61) circle(1.5pt);  
    \ifnum#2=14
      \fill[dot hidden] (0.38,0.27) circle(1.5pt);
      \fill[dot hidden] (0.61,0.27) circle(1.5pt);
      \fill[dot hidden] (0.38,0.50) circle(1.5pt);
      \fill[dot hidden] (0.61,0.50) circle(1.5pt);
      \fill[dot hidden] (0.38,0.73) circle(1.5pt);
      \fill[dot hidden] (0.61,0.73) circle(1.5pt);
    \else
      \fill[dot hidden] (0.38,0.15) circle(1.5pt);
      \fill[dot hidden] (0.38,0.85) circle(1.5pt);
      \fill[dot hidden] (0.61,0.15) circle(1.5pt);
      \fill[dot hidden] (0.61,0.85) circle(1.5pt);
    \fi
    \ifnum#2<14
      \fill[dot hidden] (0.50,0.50) circle(1.5pt); 
    \fi
    \ifnum#2>14
      \fill[dot hidden] (0.38,0.61) circle(1.5pt);
      \fill[dot hidden] (0.61,0.61) circle(1.5pt); 
      \ifnum#2=15      
        \fill[dot hidden] (0.5,0.38) circle(1.5pt);        
      \fi   
      \ifnum#2>15
          \fill[dot hidden] (0.38,0.38) circle(1.5pt);
          \fill[dot hidden] (0.61,0.38) circle(1.5pt);
      \fi
    \fi
  \fi
\fi}}
}%

\begin{document}
\begin{tikzpicture}[A/.style={fill=red!70},B/.style={fill=blue!50},
C/.style={fill=green!50}]
\matrix[column sep=3pt,row sep=4pt]{%
\pic {dice=A/1};   & \pic {dice=A/2};   & \pic {dice=A/3};   & \pic {dice=A/4}; \\
\pic {dice=A/5};   & \pic {dice=A/6};   & \pic {dice=A/7};   & \pic {dice=A/8}; \\
\pic {dice=A/9};   & \pic {dice=B/10}; & \pic {dice=B/11}; & \pic {dice=B/12}; \\
\pic {dice=C/13}; & \pic {dice=C/14}; & \pic {dice=C/15}; & \pic {dice=C/16}; \\
}; 
\end{tikzpicture}
\end{document}

enter image description here

| improve this answer | |
  • 1
    Thank you for cleaning up the code, that's a lot nicer! Indeed, an "arbirtrary" number of dots is extremely ambitious. In your layout, 15 is somewhat less satisfying, but all the other numbers look good to me! :-) – PatrickT Sep 18 '18 at 4:36
5

An option following some rules, for odd numbers there should always be the midpoint, the next odd one different from the unit is the sum of the figure of the even number plus the midpoint, from number ten the pairs are the sum of the figure of number eight with the number corresponding scaling 0.5 for example 10 = 8+2(scaled 0.5) and 12=8+4(scaled 0.5), I redefined the way to draw the dice in the definition drawing \dice[point_number][color]{coordinate}, using a code like a selector, then a test drawing definition to get each dice rotated to see the symmetry...

RESULT:

enter image description here

MWE:

\documentclass[tikz,border=15pt]{standalone}

\begin{document}
    \begin{tikzpicture}
    \def\dice[#1][#2]#3#4{
        \begin{scope}[shift={(#3)},rotate=#4]
        \draw[rounded corners,fill=#2,thick](-1,1) rectangle (1,-1);
        \foreach \dice [count=\n from 1] in {
            {0/0},%1
            {45/1,-135/1},%2
            {0/0,45/1,-135/1},%3 = 2 + 1
            {45/1,135/1,-45/1,-135/1},%4 
            {0/0,45/1,135/1,-45/1,-135/1},%5 = 4+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707},%6 
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707},%7= 6+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707},%8
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707},%9 = 8+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,-135/0.5},%10 = 8+2(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,-135/0.5},%11 = 10+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5},%12=8+4(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5},%13
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353},%14=8+6(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353},%15=14+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353,90/0.353,270/0.353},%16=8+8(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353,90/0.353,270/0.353}%17=16+1
        } {
            \ifnum#1=\n 
                \foreach \k/\r in \dice {\draw[fill](\k:\r) circle (3pt);}
            \fi
        }
        \end{scope}
    }

    \def\test[#1][#2]#3{
        \begin{scope}[shift={(#3)}]
            \node[font=\sf\Huge,scale=2] at (-2,0) {#1}; 
            \dice[#1][#2]{0,0}{0}
            \dice[#1][#2]{2.2,0}{90}
            \dice[#1][#2]{4.4,0}{180}
            \dice[#1][#2]{6.6,0}{270}
        \end{scope} 
    }

    \foreach \a [count=\b] in {1,...,8}{
        \test[\a][red]{0,2.2*\b}
    }

    \foreach \a [count=\b] in {9,...,17}{
        \ifnum\a<10
            \test[\a][red]{10.8,2.2*\b}
        \else   
            \ifnum\a<13
            \test[\a][blue!50]{10.8,2.2*\b}
            \else   
            \test[\a][green!50]{10.8,2.2*\b}
            \fi
        \fi
    }

    \end{tikzpicture}
\end{document}

ADDENDUM:

Just for fun... A modification to get domino faces, new definition \domino[side1_number][side2_number][color]{position}, then a foreach code that generate the posible combinations and some conditionals to order the results in groups of 17.

RESULT:

enter image description here MWE:

\documentclass[tikz,border=15pt]{standalone}

\begin{document}
    \begin{tikzpicture}
    \def\dice[#1][#2]#3#4{
        \begin{scope}[shift={(#3)},rotate=#4]
        \foreach \dice [count=\n from 1] in {
            {0/0},%1
            {45/1,-135/1},%2
            {0/0,45/1,-135/1},%3 = 2 + 1
            {45/1,135/1,-45/1,-135/1},%4 
            {0/0,45/1,135/1,-45/1,-135/1},%5 = 4+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707},%6 
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707},%7= 6+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707},%8
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707},%9 = 8+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,-135/0.5},%10 = 8+2(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,-135/0.5},%11 = 10+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5},%12=8+4(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5},%13
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353},%14=8+6(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353},%15=14+1
            {45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353,90/0.353,270/0.353},%16=8+8(red 0.5)
            {0/0,45/1,135/1,-45/1,-135/1,0/0.707,180/0.707,90/0.707,270/0.707,45/0.5,135/0.5,-45/0.5,-135/0.5,0/0.353,180/0.353,90/0.353,270/0.353}%17=16+1
        } {
            \ifnum#1=\n 
                \foreach \k/\r in \dice {\draw[fill,#2](\k:\r) circle (3pt);}
            \fi
        }
        \end{scope}
    }

    \def\domino[#1][#2][#3]#4{
        \begin{scope}[shift={(#4)}]
        \draw[line width=1.5pt,rounded corners,top color=black!10] (-1,1) rectangle (1,-3.4);
        \dice[#1][#3!30!red]{0,0}{0}
        \dice[#2][#3!30!green]{0,-2.2}{0}
        \draw[fill] (0.8,-1) rectangle (-0.8,-1.2);
        \end{scope}
    }
    \edef\Shiftx{0}
    \edef\Shifty{0}
    \foreach \k in {0,...,16}{
        \foreach \l in {\k,...,16}{
            \domino[\l][\k][blue]{2.2*\Shiftx,5.5*\Shifty}
            \ifnum\Shiftx>15
                \pgfmathparse{int(\Shifty+1)}
                \xdef\Shifty{\pgfmathresult}
                \xdef\Shiftx{0} 
            \else
                \pgfmathparse{int(\Shiftx+1)}
                \xdef\Shiftx{\pgfmathresult}
            \fi
        }
    }
    \end{tikzpicture}
\end{document}
| improve this answer | |
  • Excellent effort thanks! I like that you've set some rules. And thanks for the code improvements. – PatrickT Sep 18 '18 at 9:09
  • These are beautiful domino faces! :-) – PatrickT Sep 19 '18 at 10:48
4

Without tikz. Instead, I just stack $\bullet$ bitmaps. Tile size and relative dot size may be set.

AN EXPLANATION to help decipher the gibberish:

1-9 are set on a 3x3 grid, 10-12 are [essentially] on a 4x3 grid, and 13-16 are [essentially] on a 4x4 grid. However, 11 and 13 break the rules with half steps.

In the grid layouts, \q is a dot, \z is a space, - is a linefeed. For the half-step exceptions, \Q is a dot shifted half a cell up, and \QQ is a dot shifted half up, occupying a double-wide cell.

Dots are made relatively smaller by increasing \domwd and vice versa. The actual presented size of the face is given by \domsz. Background color set with \domcolor.

\documentclass{article}
\usepackage{stackengine,scalerel,xcolor}
\newcommand\domsz{1cm}
\newcommand\domwd{23pt}
\newcommand\domcolor{white}
\newcommand\domsq{\fboxsep=0pt\fbox{\textcolor{\domcolor}{\rule{\domwd}{\domwd}}}}
\setstackEOL{-}
\newlength\dotwd
\newlength\dotht
\newcommand\q{\makebox[\dotwd]{$\bullet$}}
\newcommand\z{\makebox[\dotwd]{\phantom{$\bullet$}}}
\newcommand\Q{\raisebox{.5\dotht}{\q}}
\newcommand\QQ{\makebox[2\dotwd]{\raisebox{.5\dotht}{\q}}}
\newcommand\scaledom[2][9]{%
  \ifnum#1<13\relax%
    \setlength\dotwd{.3333\dimexpr\domwd}%
  \else
    \setlength\dotwd{.25\dimexpr\domwd}%
  \fi
  \ifnum#1<10\relax%
    \setlength\dotht{.3333\dimexpr\domwd}%
  \else
    \setlength\dotht{.25\dimexpr\domwd}%
  \fi
  \setstackgap{L}{\the\dotht}%
  \savestack\tmpbox{\stackinset{c}{}{c}{-.1ex}{\Longstack{#2}}{\domsq}}%
  \scaleto{\tmpbox}{\domsz}%
}
\newcommand\dom[1]{\csname dom#1\endcsname}
\expandafter\def\csname dom1\endcsname{\scaledom{\z\z\z-\z\q\z-\z\z\z}}
\expandafter\def\csname dom2\endcsname{\scaledom{\z\z\q-\z\z\z-\q\z\z}}
\expandafter\def\csname dom3\endcsname{\scaledom{\z\z\q-\z\q\z-\q\z\z}}
\expandafter\def\csname dom4\endcsname{\scaledom{\q\z\q-\z\z\z-\q\z\q}}
\expandafter\def\csname dom5\endcsname{\scaledom{\q\z\q-\z\q\z-\q\z\q}}
\expandafter\def\csname dom6\endcsname{\scaledom{\q\z\q-\q\z\q-\q\z\q}}
\expandafter\def\csname dom7\endcsname{\scaledom{\q\z\q-\q\q\q-\q\z\q}}
\expandafter\def\csname dom8\endcsname{\scaledom{\q\q\q-\q\z\q-\q\q\q}}
\expandafter\def\csname dom9\endcsname{\scaledom{\q\q\q-\q\q\q-\q\q\q}}
\expandafter\def\csname dom10\endcsname{%
  \scaledom[10]{\q\z\q-\q\q\q-\q\q\q-\q\z\q}}
\expandafter\def\csname dom11\endcsname{%
  \scaledom[10]{\q\q\q-\q\z\q-\q\Q\q-\q\q\q}}
\expandafter\def\csname dom12\endcsname{%
  \scaledom[12]{\q\q\q-\q\q\q-\q\q\q-\q\q\q}}
\expandafter\def\csname dom13\endcsname{%
  \scaledom[13]{\q\q\q\q-\q\z\z\q-\q\QQ \q-\q\q\q\q}}
\expandafter\def\csname dom14\endcsname{%
  \scaledom[14]{\q\q\q\q-\q\z\q\q-\q\q\z\q-\q\q\q\q}}
\expandafter\def\csname dom15\endcsname{%
  \scaledom[15]{\q\q\q\q-\q\q\q\q-\q\q\z\q-\q\q\q\q}}
\expandafter\def\csname dom16\endcsname{%
  \scaledom[16]{\q\q\q\q-\q\q\q\q-\q\q\q\q-\q\q\q\q}}
\begin{document}
\renewcommand\domcolor{red!50}\dom{1} \dom{2} \dom{3} \dom{4}\par
\dom{5} \dom{6} \dom{7} \dom{8}\par
\dom{9} \renewcommand\domcolor{blue!50}\dom{10} \dom{11} \dom{12}\par
\renewcommand\domcolor{green!50}\dom{13} \dom{14} \dom{15} \dom{16}

\medskip\renewcommand\domwd{35pt}\renewcommand\domsz{.75cm}
\dom{13} \dom{14} \dom{15} \dom{16}
\end{document}

enter image description here

| improve this answer | |
  • Great! The code isn't easy to follow for a novice (q\q\q-\q\z\q-\q\Q\q-\q\q\q), but the output is great! :-) – PatrickT Sep 19 '18 at 10:56
  • 1
    @PatrickT \q is a dot, \z is a space, - is a linefeed. 1-9 are on a 3x3 grid, 10-12 are [essentially] on a 4x3 grid, and 13-16 are [essentially] on a 4x4 grid. However, 11 and 13 break the rules with half steps. BTW, \Q is a dot shifted half a cell up, and \QQ is a dot shifted half up, occupying a double-wide cell. – Steven B. Segletes Sep 19 '18 at 11:01
3

Using the ideas from J Leon V. and the code from Steven B. Segletes, I have created domino faces up to 81:

\documentclass{article}
\usepackage{stackengine,scalerel,xcolor}
\newcommand\domsz{.8cm}
\newcommand\domwd{70pt}
\newcommand\domcolor{white}
\newcommand\domsq{\fboxsep=0pt\fbox{\textcolor{\domcolor}{\rule{\domwd}{\domwd}}}}
\setstackEOL{-}
\newlength\dotwd
\newlength\dotht
\newcommand\Q{\makebox[\dotwd]{$\bullet$}}
\newcommand\z{\makebox[\dotwd]{\phantom{$\bullet$}}}
\newcommand\scaledom[2][9]{%
    \setlength\dotwd{.1\dimexpr\domwd}%
    \setlength\dotht{.1\dimexpr\domwd}%
  \setstackgap{L}{\the\dotht}%
  \savestack\tmpbox{\stackinset{c}{}{c}{-.1ex}{\Longstack{#2}}{\domsq}}%
  \scaleto{\tmpbox}{\domsz}%
}
\newcommand\dom[1]{\csname dom#1\endcsname}
\expandafter\def\csname dom1\endcsname{\scaledom{
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\Q\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z
}}
\expandafter\def\csname dom2\endcsname{\scaledom{
    \z\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\z
}}
\expandafter\def\csname dom3\endcsname{\scaledom{
    \z\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\Q\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\z
}}
\expandafter\def\csname dom4\endcsname{\scaledom{
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q
}}
\expandafter\def\csname dom5\endcsname{\scaledom{
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\Q\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q
}}
\expandafter\def\csname dom6\endcsname{\scaledom{
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q
}}
\expandafter\def\csname dom7\endcsname{\scaledom{
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q
}}
\expandafter\def\csname dom8\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom9\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom10\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom11\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\z\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\z\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom12\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\z\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom13\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom14\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom15\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\z\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom16\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\Q\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\Q\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom17\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\Q\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\Q\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom18\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom19\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \z\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\z-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom20\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom21\endcsname{\scaledom{
    \Q\z\z\z\Q\z\z\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\z\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom22\endcsname{\scaledom{
    \Q\z\z\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom23\endcsname{\scaledom{
    \Q\z\z\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\z\z\Q
}}
\expandafter\def\csname dom24\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom25\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom26\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\Q\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\Q\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom27\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom28\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom29\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom30\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom31\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom32\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom33\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom34\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom35\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\z\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\z\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom36\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom37\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom38\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom39\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\z\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\z\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom40\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\z\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom41\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom42\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\Q\z\Q\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom43\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom44\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\Q\z\Q\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom45\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom46\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom47\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\z\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom48\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom49\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom50\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom51\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom52\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom53\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom54\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom55\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom56\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom57\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom58\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom59\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom60\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom61\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\z\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom62\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom63\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\z\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\z\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom64\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom65\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom66\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom67\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom68\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom69\endcsname{\scaledom{
    \Q\z\Q\z\Q\z\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\z\Q\z\Q\z\Q
}}
\expandafter\def\csname dom70\endcsname{\scaledom{
    \Q\z\Q\z\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\z\Q\z\Q
}}
\expandafter\def\csname dom71\endcsname{\scaledom{
    \Q\z\Q\z\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\z\Q\z\Q
}}
\expandafter\def\csname dom72\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom73\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom74\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom75\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \z\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\z-
    \Q\z\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom76\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\z\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom77\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\z\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\z\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom78\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom79\endcsname{\scaledom{
    \Q\z\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\z\Q
}}
\expandafter\def\csname dom80\endcsname{\scaledom{
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\z\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q
}}
\expandafter\def\csname dom81\endcsname{\scaledom{
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q-
    \Q\Q\Q\Q\Q\Q\Q\Q\Q
}}
\definecolor{1}{rgb}{1,0,0}
\definecolor{2}{rgb}{0,0,1}
\definecolor{3}{rgb}{0,1,0}
\definecolor{4}{rgb}{0,1,1}
\definecolor{5}{rgb}{1,0,1}
\definecolor{6}{rgb}{1,1,0}
\definecolor{7}{rgb}{1,1,1}
\definecolor{8}{rgb}{1,.5,.5}
\definecolor{9}{rgb}{.5,.5,0}
\definecolor{10}{rgb}{.5,1,.5}
\definecolor{11}{rgb}{0,.5,.5}
\begin{document}
\renewcommand\domcolor{1}
\dom{1} \dom{2} \dom{3} \dom{4} \dom{5} \dom{6} \dom{7} \dom{8}\par
\renewcommand\domcolor{2}
\dom{9} \dom{10} \dom{11} \dom{12} \dom{13} \dom{14} \dom{15} \dom{16}\par
\renewcommand\domcolor{3}
\dom{17} \dom{18} \dom{19} \dom{20} \dom{21} \dom{22} \dom{23} \dom{24}\par
\renewcommand\domcolor{4}
\dom{25} \dom{26} \dom{27} \dom{28} \dom{29} \dom{30} \dom{31} \dom{32}\par
\renewcommand\domcolor{5}
\dom{33} \dom{34} \dom{35} \dom{36} \dom{37} \dom{38} \dom{39} \dom{40}\par
\renewcommand\domcolor{6}
\dom{41} \dom{42} \dom{43} \dom{44} \dom{45} \dom{46} \dom{47} \dom{48}\par
\renewcommand\domcolor{7}
\dom{49} \dom{50} \dom{51} \dom{52} \dom{53} \dom{54} \dom{55} \dom{56}\par
\renewcommand\domcolor{8}
\dom{57} \dom{58} \dom{59} \dom{60} \dom{61} \dom{62} \dom{63} \dom{64}\par
\renewcommand\domcolor{9}
\dom{65} \dom{66} \dom{67} \dom{68} \dom{69} \dom{70} \dom{71} \dom{72}\par
\renewcommand\domcolor{10}
\dom{73} \dom{74} \dom{75} \dom{76} \dom{77} \dom{78} \dom{79} \dom{80}\par
\renewcommand\domcolor{11}
\dom{81}\par
\end{document}

Here are the domino faces:

Domino faces up to 81 dots

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.