farrell@batserver.cs.uq.oz.au (Friendless) (09/21/90)
Does anyone know of any latex or postscript macros or other hacks to draw pictures of go boards like you see in books? How hard would it be to make some up in postscript? Please mail to me and I will summarise responses if there are any. Friendless, 23 kyu :-)
ychen@aftermath.waterloo.edu (Youyi Chen) (09/22/90)
Following is a sample of LaTeX Go board. I also attach a PostScript program for drawing Go board which I wrote and posted to rec.games.go sometime ago. Youyi Chen ( 4 dan ) %% A Sample of LaTeX Go Board %% Youyi Chen %% University of Waterloo, Dept. of Statistics and Actuarial Science %% ychen@aftermath.waterloo.edu %% Sept. 1990 %% \documentstyle[12pt]{article} \pagestyle{empty} \begin{document} \centerline{{\Huge No Way Out?}} \vspace{.5in} \begin{center} \setlength{\unitlength}{5mm} \begin{picture}(18,18)(1,1) %% moves \put(6,3){\circle*{1}} \put(7,3){\circle*{1}} \put(8,3){\circle*{1}} \put(5,4){\circle*{1}} \put(9,4){\circle*{1}} \put(5,6){\circle*{1}} \put(9,6){\circle*{1}} \put(7,6){\circle*{1}} \put(7,7){\circle*{1}} \put(6,4){\circle{1}} \put(7,4){\circle{1}} \put(8,4){\circle{1}} \put(6,5){\circle{1}} \put(8,5){\circle{1}} %% the board %% horizontal \multiput(1,1)(0,1){3}{\line(1,0){18}} \put(1,4){\line(1,0){4}} \put(9,4){\line(1,0){10}} \put(1,5){\line(1,0){4.5}} \put(6.5,5){\line(1,0){1}} \put(8.5,5){\line(1,0){10.5}} \multiput(1,6)(0,1){14}{\line(1,0){18}} %%vertical \multiput(1,1)(1,0){5}{\line(0,1){18}} \put(6,1){\line(0,1){2}} \put(6,5.5){\line(0,1){13.5}} \put(7,1){\line(0,1){2}} \put(7,4.5){\line(0,1){14.5}} \put(8,1){\line(0,1){2}} \put(8,5.5){\line(0,1){13.5}} \multiput(9,1)(1,0){11}{\line(0,1){18}} %% the stars \multiput(4,4)(6,0){3}{\circle*{0.3}} \multiput(4,10)(6,0){3}{\circle*{0.3}} \multiput(4,16)(6,0){3}{\circle*{0.3}} \end{picture} \end{center} \end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From ychen Wed Aug 8 17:17:06 EDT 1990 Article 2195 of rec.games.go: Newsgroups: rec.games.go Path: water!ychen >From: ychen@water.waterloo.edu (Youyi Chen) Subject: PostScript WeiQi: A PostScript program for drawing the Go Games. Message-ID: <1990Aug8.211019.1809@water.waterloo.edu> Summary: WeiQi, Go, PostScript. Organization: University of Waterloo References: <1990Aug8.154047.1604@athena.mit.edu> Distribution: na Date: Wed, 8 Aug 90 21:10:19 GMT Lines: 242 Following is a PostScript program for drawing the Go games. A sample game data is supplied in the program. cut lines from --- Cut here ----, send it to a PostScript Laser Printer. You will get a very nice picture of a life and death problem. The program can be used to print any game with stone mark, title and comments. See the comments in the program for details. Youyi Chen. % ------ cut here ----- cut here --- delete this line ----- %!PS-Adobe-1.0 % ******* WeiQi.PS ********1.0** % A PostScript Program for Drawing Go game. % % Youyi Chen. % Wed Aug 8 15:41:30 EDT 1990 % % Youyi Chen ychen@aftermath.waterloo.edu % Department of Statistics and Acturial Science % University of Waterloo % Waterloo, Ontario % Canada, N2L 3G1 % % General: % A sample game is supplied with this program. Send this % program directly to a Postscript printer, you will get % a very interesting ancient Chinese WeiQi life and death % problem drawn by PostScript. % % If you want to print you own games, you only need to edit % the game data, title, comments using the same format % in the example given below, i.e. edit lines between % --- begin game--- and ---- end game ----. % % If you like to keep data and the program separated, % You can either write a unix shell program or use "run" % operator in postscript. % % User Functions: % Title % (string) Title ---- print title. % Comment % (string) Comment --- print comments. % Newline % Newline --- break line in text. % W % n1 n2 (n3) W --- put a white stone at coordinate n1 n2, % and set mark with n3. () gives no mark. % 1 <= n1 <= 19, 1<= n2 <= 19, n3 can be % any character or symbol. % B % n1 n2 (n3) B --- same as W, but for black stone. % StartComment % StarComment --- begin to input comments (setfont). % StartGame % StarGame --- begin to input game data. % CopyLeft: % You are free to use and distribute it. % Please send me your suggestions and comments. % % PostScript is a trademark of Adobe Systems, Incorporated. % -------- Variables and Procedures -------- /unitlength 18 def % board unit length = 0.25 inch /linewidth 0.5 def % board grid linewidth /unit { unitlength mul } def /LM 0 def % left margin for board and comments 24 unit /RM exch def % right margin for comments /TitleFont { /Times-Bold findfont 25 scalefont setfont } def /CommentFont { /Times-Italic findfont 12 scalefont setfont } def /Title { % stack: (title) TitleFont dup stringwidth pop 18 unit sub -0.5 mul 20 unit moveto show } def /StartComment { -2 unit /ypos exch def % board lowleft y margine /lineheight 16 def % distance between lines of text CommentFont LM ypos moveto } def 0.55 unit ceiling /sfs exch def % stone font size /StoneFont { % find font for marking the stones /Helvetica-Bold findfont sfs scalefont setfont } def /StoneRadius % stone radius { unitlength 2.1 div } def /W { % stack: x y (s) /str exch def % draw a white stone at x y with mark s at center unit 1 unit sub /cy exch def unit 1 unit sub /cx exch def newpath cx cy StoneRadius 0 360 arc gsave 1 setgray fill grestore 0 setgray stroke /xp { cx str stringwidth pop 0.5 mul sub } def /yp { cy sfs 0.325 mul sub} def xp yp moveto str show } def /B { % stack: x y (s) /str exch def % draw a black stone at x y with mark s at center unit 1 unit sub /cy exch def unit 1 unit sub /cx exch def newpath cx cy StoneRadius 0 360 arc 0 setgray fill /xp { cx str stringwidth pop 0.5 mul sub } def /yp { cy sfs 0.325 mul sub} def 1 setgray xp yp moveto str show } def /mr {unitlength 7 div} def % ridius of mark circle /SetMark % stack: x y { mr 0 360 arc fill} def % set mark at 9 special points /DrawBoard { linewidth setlinewidth newpath 0 1 unit 18 unit % draw grid { 0 moveto 0 18 unit rlineto } for stroke newpath 0 1 unit 18 unit { 0 exch moveto 18 unit 0 rlineto } for stroke 3 6 15 { unit 3 unit SetMark } for % set marks 3 6 15 { unit 9 unit SetMark } for 3 6 15 { unit 15 unit SetMark} for } def /StartGame { StoneFont } def % A simple text formatter for printing comments /Newline { % moveto next line ypos lineheight sub /ypos exch def LM ypos moveto } def % move to next line /Comment { % stack: str dup stringwidth pop currentpoint pop add RM gt {Newline} if show } def % print string % -------- Main Program -------- 170 300 translate % move the origin .8 .8 scale % set global scale DrawBoard % -------- begin of the sample game --------- (No Way Out?) Title StartComment (Gui-Si:) Comment Newline ( A life and death problem ) Comment (from an ancient Chinese WeiQi book.) Comment Newline Newline Newline Newline Newline (WeiQi.PS) Comment Newline (A PostScript program for drawing Go game.) Comment Newline (PostScript is a trade mark of ) Comment (Adobe System, Incorporated. ) Comment (Weiqi is Go in Chinese.) Comment Newline (Please send any comment and ) Comment (suggestion to ychen@water.waterloo.edu) Comment StartGame % -------- Problem -------- 6 3 () B 7 3 () B 8 3 () B 5 4 () B 9 4 () B 5 6 () B 9 6 () B 7 6 () B 7 7 () B 6 4 () W 6 5 () W 7 4 () W 8 4 () W 8 5 () W % -------- transformation -------- 14 17 () B 13 17 () B 12 17 () B 15 16 () B 11 16 () B 15 14 () B 11 14 () B 13 14 () B 13 13 () B 14 16 () W 14 15 () W 13 16 () W 12 16 () W 12 15 () W % ------ solution --------- 13 12 (1) W 14 14 (2) B 12 14 (3) W 12 13 (4) B 11 15 (5) W 10 15 (6) B 10 14 (7) W 11 13 (8) B 10 16 (9) W % -------- end of the sample game --------- showpage