ブログ

将棋の局面データベース+Wiki その2

2007年04月12日(木)10:22|藤原

こんにちは。藤原です。 今回も引き続き、将棋の局面DB+Wikiについてお話したいと思います。 前回のエントリで書いたように、このシステムをPHP+MySQLで現在開発中ですが、まだお見せできる段階までは出来ていませんので、今回は現在の開発状況と今後の開発について、お話したいと思います。

前回のおさらい。

まず始めに、前回のエントリの内容を簡単にまとめてみます。

  • 1. 棋譜データベースには解説などが載せにくく、直接参考になる情報が手に入らない。
  • 2. 局面をデータベース化すると、同一局面を一括して扱える為、解説などがつけ易い。
  • 3. 解説をwiki方式で自由に編集できるようにすることで、情報の質、量が向上する。

以上が、前回の内容です。ポイントは、局面は全ての棋譜にまたがってユニークなので、解説をつけるなら局面につけたほうが更新が簡単、と言うことです。

開発状況

このシステムを使うときのユーザ側から見た手順は以下のようなものを考えています。

  • 1. ユーザが興味のある局面の全体図か部分図を入力する。
  • 2. 検索結果が表示されるので、見たい局面を選択。
  • 3. 局面、解説、現在の形勢判断投票結果が表示される。
  • 4. 解説を編集、形勢判断に投票。

現在はこの流れの、1,2の部分で使う、局面図の入力UIと全体図検索が完成しています。後は部分図を使った検索が出来るようになればこのシステムの肝の部分が完成します。

部分局面検索

さて、その部分局面からの検索ですが、なかなか一筋縄ではいきません。というのも、現在、データベースに保存する際、局面を40個の駒の位置情報と、その駒情報を結合してmd5を通したハッシュ値として保存しているからです。全体図検索の時は、検索したい局面のハッシュ値を同様に作り、ハッシュ値の合致するものを検索しているのですが、当然部分局面検索ではこの方法は使えません。

と言うわけで、部分局面検索を実現するためにデータベースに保存するデータを40個の駒情報ではなく81枡の盤面にどの駒があるかと言う情報にしようと、現在構成を変更中です。これなら、どの枡にはどの駒、と言うように条件をつければ部分局面の検索が可能です。

それなら最初から、盤情報を保存するようにしておけばよかったのですが、開発当初にデータベースの構成を考えたときは、駒の位置情報を保存したほうがデータ量が少なくなる(盤情報81×2byteに対して駒情報だと40×2byte)ため、そちらを採用していました。先見の不明です。

今後の開発

今後は、まず部分局面検索を完成させた後、先ほど書いた手順が一通り動作するプロトタイプを作ってみようと考えています。部分図局面さえ出来れば、解説、形勢判断部分にはそれほど時間がかからないはずなので、次回のエントリまでには完成させて、次回はそのプロトタイプをご紹介したいと思います。

この記事に関するお問い合わせはこちら

ページの先頭へ