正如标题所说,正方形的围棋棋盘很容易画,有很多围棋棋盘包,比如igo
或psgo
。但是没有办法绘制非正方形的围棋棋盘支持。我该如何绘制矩形的围棋棋盘?
我找到了一篇绘制这些围棋棋盘的论文,但不知道它是如何完成的......
该论文是:
van der Werf、Erik CD 和 Mark HM Winands。“解决围棋矩形棋盘问题。”Icga 期刊 32.2(2009 年):77-88。
答案1
这真的很容易做到蒂克兹\GoBoard
。下面是用于在围棋棋盘上画珠子的宏的快速模型:
该宏的语法是:
\GoBoard[x-dim][y-dim]{list of white pieces}{list of black pieces}
其中白棋和黑棋的列表是用逗号分隔的坐标列表。棋盘的 y 维是可选的,默认为 x 维。上图是使用
\GoBoard{7}[6]{(2,1),(2,2),(2,3),(2,4),(3,4),(4,3),(5,3),(5,2),(5,1)}
{(3,1),(3,2),(3,3),(4,4),(5,4),(6,4),(6,3),(6,2),(6,1)}
下面的代码几乎没有样式,但可以很容易地添加,例如,通过查阅综合蒂克兹手动的。
以下是完整的 MWE:
\documentclass{article}
\usepackage{tikz}
\usepackage{xparse}
% \GoBoard[x-dim][y-dim]{list of white pieces}{list of black pieces}
\NewDocumentCommand\GoBoard{ m O{#1} m m}{%
\begin{tikzpicture}[
white/.style={ball color=white},% add styling to suit your tastes
black/.style={ball color=black}
]
% first draw the grid
\foreach \x in {0,...,#1} {
\draw[thick](\x,0)--++(0,#2);
}
\foreach \y in {0,...,#2} {
\draw[thick](0,\y)--++(#1,0);
}
% now draw the white pieces
\foreach \wh in {#3} {
\shade[white] \wh circle (5mm);
}
% now draw the black pieces
\foreach \bl in {#4} {
\shade[black] \bl circle (5mm);
}
\end{tikzpicture}%
}
\begin{document}
\GoBoard{7}[6]{(2,1),(2,2),(2,3),(2,4),(3,4),(4,3),(5,3),(5,2),(5,1)}
{(3,1),(3,2),(3,3),(4,4),(5,4),(6,4),(6,3),(6,2),(6,1)}
\end{document}