如何在乳胶中绘制非方形围棋棋盘?

如何在乳胶中绘制非方形围棋棋盘?

正如标题所说,正方形的围棋棋盘很容易画,有很多围棋棋盘包,比如igopsgo。但是没有办法绘制非正方形的围棋棋盘支持。我该如何绘制矩形的围棋棋盘?

我找到了一篇绘制这些围棋棋盘的论文,但不知道它是如何完成的......

该论文是:

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}

相关内容