記事:JavaScriptで囲碁棋譜(SGF形式)を表示する

JavaScriptはご存知のようにホームページを少し見やすくするための言語です。ホームページにマウスが置かれたら関連の見出しを展開したり、色や画像を変えたりするためによく使われています。JavaScriptはJavaと名前は似ていますがまったく異なり、ホームページ作成のための補助言語で、そのホームページを開いた人のファイルを読み取ったり、スパイプログラムを送り込むなどのファイルアクセス機能がありません。(Java言語では見た人へのファイルアクセスが可能。)しかしそれ以外は他のコンピュータ言語と比べても遜色はありません。JavaScriptでも囲碁の棋譜作成や再現、あるいは計算プログラムも十分作ることができるのです。

一方囲碁の棋譜はSGFと言われる形式が一般的です。他にも日本棋院の「幽玄の間」で使われているNGF形式、同じく新聞棋戦で使われているUGF形式、なと各種ありますが、変化を記録できるSGFがもっとも普及しています。ネットで探せば大抵の棋譜はSGF形式で入手できます。JavaScriptでプログラムにあわせた独自の棋譜形式を採用表示している例もいくつかありますが(中日新聞の天元戦オランダのGOBASE)独自の形式だと一々変換しなければなりません。なおSGFと同じ形式で変化の枝記述がないMGTというのもあります。

それでSGF形式の棋譜表示プログラムをJavaScriptで作ってみました。ただし変化をつけるとその操作も複雑になるので枝なしのMGT方式です。これでネットで入手したSGF形式の棋譜を表示させることができます。またJavaScriptではファイルアクセスができないのでプログラムの参照リンク先に棋譜を追記して参照するようにしています(http://JavaScript_Program...?sgf=Kifu)。
これだけの準備をすると下記の組み込みタグだけで棋譜を表示させることができます。

<IFRAME name="go" frameborder="0" align="left" scrolling="no" width="398" height="412" src="http://homepage1.nifty.com/maznaga/IGO/goview/goview.htm?sgf=
(ここにsgf形式の棋譜を貼り付ける)"> </IFRAME>

この方式は簡単ですがプログラムを参照するURLの文字数に制限があり、手数が長かったりコメントが多いと表示ができなくなります。マイクロソフトのExPlorerの場合は2083文字の制限があるのでコメントをはずして340-50手ほどが限界になります。コメントを十分にある棋譜や手数の長い棋譜などを表示するにはJavaScriptのプログラムをダウンロードしてホームページと一緒にする必要があります。このプログラムは公開しておりフリーで入手できますが、詳しくは下記をご覧ください。
http://homepage1.nifty.com/maznaga/IGO/bodoview/html_new/index.htm


次の一手:問題を解くにはタイトルをクリックしてください。
玄玄碁 小長生 
白先では?
┏┯┯┯●○┯┯┯┯┯┯┯┯┯┯┯┯┓
┠┼○┼●○┼┼┼┼┼┼┼┼┼┼┼┼┨
┠●●┼●○┼┼┼┼┼┼┼┼┼┼┼┼┨
┠●○●●○┼┼┼・┼┼┼┼┼・┼┼┨
●○○○○┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠○┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┗┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┛
玄玄碁 争先 
黒先では?
┏┯┯┯┯┯┯┯┯┯┯┯┯┯┯┯┯┯┓
┠┼┼┼┼┼┼┼○●●┼○┼┼┼┼┼┨
┠┼●┼●┼○○○●┼○┼┼┼┼┼┼┨
┠┼┼・┼●●●●○○┼┼┼┼・┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┗┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┛
玄玄碁 徳二三 
白先では?
┏┯┯┯┯┯┯┯┯┯┯┯┯┯┯┯┯┯┓
┠●┼┼●●○┼○┼┼┼┼┼┼┼┼┼┨
┠●┼┼●○○┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼○○┼┼┼┼・┼┼┼┼┼・┼┼┨
┠○○┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼・┼┼┼┼┼・┼┼┼┼┼・┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┠┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┨
┗┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┷┛