Go Tools

This page has information about tools relating to board game go. It is inteded as a public reference for materials I find worth bookmarking. It is by no means complete, and potentially out of date ;). Please do send comments and feedback!

First up, display a game

Smart Game Format (SGF) ( en:wiki ; file specification ) is a plaintext file format designed to record and notate board games, similar to the PGN for chess.

Tools for embedding SGF into web / xHTML / flash / javascript

The following section catalogs and describes the use of tools for embedding into a web page interactive go games, go problems, or anything you can encode into an SGF format intended for display on a Goban or Go board. It should not matter in what language the page is written ( PHP, xHTML, ASP, etc..), but some do require either Java or Flash to be installed. egoban both offer a functional board without requiring any plugin.

Below are instructions, files, and code samples for EidoGo (javascript) , ZGo (requires java) , and FlashGoban / SGFView (requires flash). More to come.. ?

Known / Tested embeddable Go scripts

  • EidoGo (no-plugin , javascript) // tin.nu/eidogo // senseis:wiki
    • no plugin required
    • allows linking game positions
    • Can be made playable w/ 2 players or vs. GNU Go
    • code contributions encouraged
    • should be used more places ;)
    • If unconvinced check out the handling of Kogo's Joseki Dictionary and please let me know why you would use anything else.
    • Con: captures arrow keystrokes preventing normal webpage navigation.
  • ZGo (java) // ZGo Homepage // senseis:wiki
  • FlashGoban (flash) - FlashGoban(SGFView) Alexey Birukov , dirukov@despammed.com.

Other related links

  • egoban (ajax / no plugin required!) // egoban.org -- community for playing and displaying games /on their site only/. I can't find any way to use egoban on a remote site.
  • htmlgo (javascript / no plugin required!) htmlgo - for /playing/ a game, but does not display SGF

Related message board threads


EidoGo Example ( tin.nu/eidogo )

This is a simple example. Click here to go to move 4 on the main line. Or click here to go to a cool move

zGo implementation, see zgo homepage for more info

Code for ZGo with seperate sgf file

<applet code="ZGoMain.class" archive="zgo/ZGo.jar" width="700" height="510">
 <param name="fileName" value="GTL-5429-guo-koki-TomH.sgf">
 <param name="fileDesc" value="17 and a half points">
 <param name="fileType" value="game">
 <param name="appletBackground" value="128,128,128">
 <param name="appletWindow" value="false">
 <param name="coordinates" value="true">
 </applet>

FlashGoban, How to install, English

  • flash_goban.js - a javascript loader for sgf_view.swf (optional)
  • sgf_view.swf - the flash SGF viewer itself, from rusgolib
  • FGloader.swf - unknown usage, do not have a copy

flashgoban implemented using embedded flash object and only sgf_view.swf

Code

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" id="fgoban0" height="440" width="320">
        <param name="movie" value="http://herebox.org/go/tools/sgfview/sgf_view.swf">
        <param name="quality" value="high">
        <param name="bgcolor" value="#FFFFFF">
        <param name="FlashVars" value="sgf=GTL-5429-guo-koki-TomH.sgf&stonesType=1&commentStyle=go4go">
        <param name="salign" value="lt">
        <param name="scale" value="exactfit">
<embed src="http://herebox.org/go/tools/sgfview/sgf_view.swf" 
	quality="high" 
	bgcolor="#FFFFFF" 
	flashvars="sgf=GTL-5429-guo-koki-TomH.sgf&stonesType=1&commentStyle=" 
	swliveconnect="false" 
	name="fgoban0" 
	salign="lt" 
	scale="exactfit" 
	type="application/x-shockwave-flash" 
	pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" 
	height="440" 
	width="320">
</object>

flashgoban implemented using flash, SGF contents as parameter -- does not yet work!

previous attempting to define game without seperate SGF as in the following code:

<PARAM NAME="movie" VALUE="http://herebox.org/go/tools/sgfview/sgf_view.swf?sgf=((;PB[Yamashiro Hiroshi]PW[Kato Masao]BR[6p]WR[9p]RE[W+R]EV[Meijin, 05th]RO[League, game 15]RU[Japanese]DT[20.03.1980]KM[5,5]HA[0]SZ[19];B[pd];W[cq];B[pp];W[dd];B[fc];W[df];B[jd];W[qf];B[qh];W[qc];B[pc];W[qd];B[pe];W[rf];B[og];W[jp];B[dp];W[cp];B[do];W[er];B[gp];W[bn];B[dl];W[nq];B[fe];W[qn];B[pn];W[pm];B[on];W[qo];B[qp];W[om];B[np];W[mp];B[oq];W[no];B[op];W[pg];B[oh];W[ph];B[pi];W[oi];B[pj];W[ni];B[ok];W[nm];B[mk];W[of];B[pf];W[qg];B[nf];W[ng];B[oe];W[nh];B[of];W[lh];B[ll];W[nk];B[nl];W[nj];B[ol];W[mm];B[ml];W[jh];B[mg];W[lf];B[mf];W[lj];B[jl];W[ik];B[mq];W[lp];B[ln];W[lm];B[km];W[kn];B[jn];W[ko];B[jk];W[ij];B[hm];W[ec];B[fb];W[kd];B[ke];W[le];B[ld];W[kc];B[kf];W[lg];B[lc];W[lb];B[mb];W[jb];B[nc];W[je];B[jf];W[ie];B[if];W[id];B[hf];W[hh];B[fg];W[fi];B[hb];W[hc];B[gc];W[ib];B[hd];W[ka];B[ic];W[jc];B[ma];W[la];B[qb];W[rb];B[dg];W[cg];B[ef];W[cf];B[gj];W[fj];B[gi];W[gh];B[gk];W[fk];B[gl];W[fh];B[dh];W[dk];B[el];W[cj];B[di];W[dj];B[bh];W[cb];B[ki];W[kj];B[ji];W[jj];B[ii];W[hi];B[ih];W[li];B[ig];W[hj];B[cd];W[bd];B[ed];W[dc];B[ia];W[hc];B[bl];W[bk];B[ic];W[gn];B[fl];W[hc];B[bi];W[bm];B[cl];W[al];B[co];W[bo];B[ic];W[hn];B[in];W[ho];B[ql];W[qm];B[rh];W[hc];B[bj];W[ck];B[ic];W[il];B[im];W[hc];B[be];W[ce];B[ic];W[en];B[dn];W[hc];B[ad];W[bc];B[ic];W[qk];B[rk];W[pl];B[rj];W[hc];B[aj];W[ak];B[ic];W[pk];B[oj];W[hc];B[ek];W[ej];B[ic];W[qj];B[qi];W[hc];B[pb];W[ra];B[ic];W[gm];B[hl];W[hc];B[sg];W[re];B[ic];W[em];B[dm];W[hc];B[rc];W[sc];B[ic];W[eh];B[eg];W[hc];B[sf];W[rg];B[ic];W[rl];B[hp];W[io];B[fq];W[eq];B[ep];W[hc];B[jq];W[ip];B[iq];W[kq];B[dq];W[dr];B[ic];W[hr];B[hq];W[hc];B[cr];W[br];B[ic];W[kk];B[kl];W[hc];B[sh];W[se];B[ic];W[fr];B[ir];W[hc];B[qe];W[rd];B[ic];W[gr];B[kr];W[lr];B[js];W[hc];B[nn];W[mn];B[ic];W[nr];B[hc];W[ms];B[or];W[ks];B[ls];W[sk];B[sj];W[ks];B[bq];W[bp];B[ls];W[fo];B[fp];W[ks];B[bs];W[ar];B[ls];W[hs];B[is];W[ks];B[fm];W[fn];B[ls];W[md];B[mc];W[ks];B[sl];W[ls]))&skin=skin.xml">

flashgoban implemented using javascript to embedd the flash object.

This works just fine, if you want to use the javascript loader as well. Code for javascript insertion, using flash_goban.js and sgf_view.swf

<script language="JavaScript" src="http://herebox.org/go/tools/sgfview/flash_goban.js"></script>

<script type="application/x-javascript">
        <!--
   placeGoban("","GTL-5429-guo-koki-TomH.sgf&stonesType=1&commentStyle=","","320","440","http://herebox.org/go/tools/sgfview/");
        -->
</script>

Game clients and servers

misc


All comments, solutions, suggestions, etc welcome. Comments may found and submitted here, or by email.