株式会社イーライセンスシステムズ / プログラマ
KifCloud
Web上で実戦形式で操作可能な将棋局面データベースサービス。 (開発言語…Go+Ravel+JavaScript、サーバー...AWS ET2 、データベース...AWS DynamoDB) 既存の将棋のDBは棋譜ベースのものが多く、局面単位でのデータべース構造はあまり前例が ないので、DB設計、クラス設計、処理効率化のためのハッシュ生成のアルゴリズムなどを1か ら設計し、開発しております。 約2年間の構想、開発を経て、以下のような機能を開発しました。 ・局面のエンコーディングロジック →ある盤面の状態をbase64での文字列に可逆エンコード・デコード可能。 単純計算で80文字程度のデータ量が必要なところを、出現可能性の低い局面パターンを可変長領域で対応することで、 平均で40文字程度まで削減。可逆コードなので、APIのパラメータなどで使用した場合、 データベースレスで局面の再現が可能。また出力コードをハッシュとして用いることで、 KeyValueスキーマを用いた高速な局面情報への高速アクセスや、コード上の算術演算を用いた類似局面の検索などが可能に。 ・クライアントサイドで操作可能な将棋盤インターフェース →JavaScriptのみで、駒を将棋のルールに従って操作可能。 またブラウザ上で操作した盤面の情報はAjaxを用いてサーバー通信され、動的に局面に関する情報を取得・表示可能。 ・DynamoDBを用いた局面・棋譜情報データベースの設計 →前述の局面エンコーディングを活用することで、局面と、その連続である棋譜をシームレスに管理、取得可能に。