class Tikz: content = "" footer = "" extension = "tex" high_numbers = True def __init__(self): self.content = r'''\begin{tikzpicture} \draw[step=\boardSquare,gray,very thin] (0,0) grid (18\boardSquare,18\boardSquare); \draw (0,0) rectangle (18\boardSquare,18\boardSquare); ''' # stars for i in range(3): for j in range(3): self.content += r''' \filldraw[fill=black] ({0}\boardSquare, {1}\boardSquare) circle[radius=0.04];'''.format(6*i+3, 6*j+3)+'\n' self.content += '\n' self.footer = r'\end{tikzpicture}' '\n' def __str__(self): return self.content+self.footer def draw_stone(self, x, y, color): fill = "black" if color == "b" else "white" self.content += r' \filldraw[draw=black, fill={0}] ({1}\boardSquare, {2}\boardSquare) circle[radius=0.5\boardSquare];'.format(fill, x, 18-y)+'\n' def draw_move(self, x, y, label, color): fill = "black" if color == "b" else "white" label_color = "white" if color == "b" else "black" if (not self.high_numbers) and isinstance(label, int) and label%100 != 0: label = label%100 self.content += r' \filldraw[draw=black, fill={0}] ({1}\boardSquare, {2}\boardSquare) circle[radius=0.5\boardSquare] node[color={3}]{{{4}}};'.format(fill, x, 18-y, label_color, label)+'\n' def get_content(self): return self.content+self.footer