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
- -- also a favorite, see example below.
- used at 361points.com
- FlashGoban (flash) - FlashGoban(SGFView) Alexey Birukov , dirukov@despammed.com.
- popular choice, see example below.
- most related materials in russian
- used at godiscussions.com and go4go.net
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
- go discussions // poll: which embedded SGF viewer is best?
- go discussions // Go on WordPress
- Best applets for illustrating a game on a web-page? - Sep 2006
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
- gokgs // KGS // Cgoban // Kiseido - game player (GNU Go), viewer, KSG client.
- qgo
- smartgo - game player, viewer, problems, IGS client.
misc
- playbale capture go / atari go at 361 points
All comments, solutions, suggestions, etc welcome. Comments may found and submitted here, or by email.