自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

【JavaScript】囲碁ライブラリGliftを使ってSGF形式の詰碁WEBアプリを作る

thumbnail

gliftとは

gliftはJavaScript囲碁ライブラリである。

http://www.gliftgo.com/

囲碁のルールに加え、SGFに対応しているので、棋譜の入出力ができる。

ソースコード

glift.jsは https://github.com/artemispax/glift/releases/tag/v1.1.2 からDL

SGFはここから拝借した。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Hello World test!!</title>

    <script src="glift_1_1_2.min.js"></script>

</head>
<body>

    <div id="test" style="height: 500px;"></div>

<script>
gliftWidget = glift.create({
  sgf: {
    sgfString: "(;AW[is]AW[ir]AW[iq]AW[ip]AB[js]AB[jr]AB[jq]AB[kp]AB[lp]AB[lq]AB[lr]AB[ms]AW[mr]AW[mq]AW[ks]AW[mp]AW[mo]AW[lo]AW[ko]AW[jp]AW[or]C[Can black live?]AP[goproblems](;B[kr]C[];W[ns]C[Yes, white can't pushRIGHT](;B[ls]C[RIGHT])(;B[nq];W[ls];B[ms];W[ls]))(;B[ls];W[kr]C[No, this is mistake. Black can't make 2 eyes at now.])(;B[nr];W[ls](;B[kr];W[ls];B[ks];W[nq];B[ns];W[os];B[ls];W[kq])(;B[ns];W[nq];B[kr];W[ls];B[ks];W[os];B[ls];W[kq])))",
    widgetType: 'CORRECT_VARIATIONS_PROBLEM',
  },
  divId: "test"
});
</script>

</body>
</html>

動かすとこうなる。

結論

これで棋譜や詰碁を管理するウェブアプリが作れる。

DBにSGFを文字列かファイルで保存させ、JavaScriptでそれを読む。

スタンドアロンで動作する囲碁アプリでも良いが、あえてウェブアプリとして動作させることで、PCでもスマホでも動作する。

フレームワークに組み込めば、棋譜管理サイトや詰碁レビューサイトが作れる。

SGFはユーザー投稿型にしてもよいし、別のサイトからスクレイピングして集めても良いだろう。

デモ

https://seiya0723.github.io/javascript-tsumego/

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ