2016年11月23日水曜日

棋譜ミー 誕生

"ピップおじさん"を公開してから、たくさんの方から反響をいただき、棋譜起こしソフトの開発を続けてきました。「12月までにプロトタイプ」が目標でしたが、マイルストーンをクリアすることできました。Take a look!


10月の木曽野-滝沢戦5pointマッチのムーブを、ほぼ全部解析することができました。ダイスとチェッカーとキューブの認識ができたなら、棋譜起こし部分の製造は難しくないんじゃないかと高をくくっていたのですが、実際にやってみたら(いつものことですが)思っていたより大変でした。

アプリの名前はテクノくんが付けてくれました!
私としては珍しく、クラス図を書いたり状態遷移図を作ったりと、ソフトウェアの設計もきっちりやりました。ところが、実際のプレイ動画では想定外の事象が多々発生していたので、最後は魔改造を繰り返す羽目になりました。テントを作るくらいのつもりだったのが、すでに小屋くらいの規模になってしまいました。あと2回くらい建て直したら(ソフトを作り直したら)、まともなソフトウエアになるんじゃないかと思います。

このソフトの開発を通じで、ちょっとした気づきもありました。
例えば、出目にはゾロ目とそれ以外があります。ゾロ目じゃない出目の場合は、ムーブの種類は本質的に4種類しかありません(バリエーションを含めると6通り)。それは、
  • 異なるポイントから同じポイントにチェッカーを進める(ポイントメイク)
  • あるポイントから2つのチェッカーを動かす
  • 2箇所のポイントをそれぞれ動かす(3つのバリエーションがある)
  • 一つのチェッカーを連続して動かす(ラン)
プレイするときには、どのポイントを動かすのか?という問題がありますが、棋譜起こしプログラム的には、上記が区別できれば十分です。
ところが、同じような分類をゾロ目でやってみると大変です。組み合わせの数が途端に多くなります(とはいえ、なんとか整理できるレベル)。プレイしていてもゾロ目は難しいわけですが、棋譜起こしプログラムにとってもゾロ目は難題です。

もう一つの気づきは、"on the bar"のチェッカーです。ピップを数えるときは"25"と数えているので、気づいても良さそうなものですが、バーに乗っているチェッカーは「25ポイントにある」と考えるのが正しいです。少なくともプログラム的にはそう扱った方が便利でしたし、特別扱いする理由は何もありませんでした。
この気づきが実戦で役に立つことがあるかと思っていたところで、kazuさんのブログを読んでハッとしました。バーに乗っていることによる錯覚、新たなテーマ図だなと思いました。続きはこちらで。


次の目標は、先日の名人リーグ寺尾戦19pointマッチの解析です! こんなことやってるより、ポチポチ棋譜入力した方が早いのは分かっていますが、もっと大きな野望のために開発を続けます。

0 件のコメント:

コメントを投稿