GO board drawing with flexible annotations

As Tikz beginner, I'd learn skills for GO board drawing to do the following conveniently:

1. add stones in arbitrary board positions (BOTH for grid points and unit squares) with text tag or other indicators of shape, color, etc.;
2. label X,Y axis systematically and selectively;
3. indicate arbitrary rectangles on the board by color or bounds;
4. add comments outside of the board such that they have multiple line arrows pointing to arbitrary positions of the board, for example, all opposite boundary position pairs have a common property, several inner positions have a common property, etc.
• See the answers to this question: tex.stackexchange.com/questions/1947/… – Hood Chatham Sep 30 '17 at 1:59
• Perhaps not as this community commonly understood. But we can view GO board as a special case of grid. That is why I thought any thing relevant to grid may apply to GO board. (I tried to add certain tags but failed) – Charles Yu Sep 30 '17 at 2:46
• Thanks for the example. But I still need more help with items 2,3,4. For X,Y axis labeling, suppose X is labelled from 1 to 19, and Y from A to S. How to make a systematical labeling? – Charles Yu Sep 30 '17 at 2:49
• ctan.org/topic/games There are at least 3 dedicated go support packages of some kind in that list and some of the others may also offer support, of course. – cfr Sep 30 '17 at 3:01
• If the link helped with 1, then post the code you've got working and ask a specific question. The site works best when you ask for help with the particular step you're stuck on and don't just post a list of desiderata asking about various different things. Just because it is one project, doesn't mean you haven't asked four questions :-). – cfr Sep 30 '17 at 3:03

The Metapost package metago appears to work out of the box:

Perhaps this does what you want? Here is the example from the documentation, wrapped up in luamplib.

\documentclass{scrartcl}
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\usepackage{luamplib}
\mplibtextextlabel{enable}
\begin{document}
However, a service-oriented paradigm is further compounded when taking into account
the evolution of specifications over a given time period.
$\begin{mplibcode} input metago beginfig(1); set_board_size 6; init_board; put_b(C4); put_w(D4); put_b(D3); put_w(C3); put_b(E4); put_w(B4); put_b(D5); display_board; endfig; \end{mplibcode}$
Is this what you need?

\end{document}


You need to compile my example using lualatex, or adapt it for gmp + pdflatex.

If your objective is to learn TikZ, then metago would at least provide you a benchmark for your efforts.