2014年04月07日

将棋盤のデータ構造

コンピュータ将棋のプログラムを自作するにあたり、まず最初に行うべき作業は、盤と駒のデータ構造を決めることです。

将棋プログラムで行うべき処理の中心は「合法的な指し手の生成」と「指し手の価値の評価」ですが、データ構造が決まらなければ、具体的な処理論理が決まらないからです。

そこで、2014年4月7日(月)の 15時頃から、紙に鉛筆で落書きしながら、将棋盤のデータ構造について検討しました。

C言語で 81マス(9筋9段)の将棋盤を変数として定義する場合、多くの人が最初に思いつくのは 81マス分の大きさの領域を用意する方法ですが、盤外領域を用意してする方法もあります。

81マス分の領域を用意する場合に限っても、将棋盤の座標と変数領域上の位置の対応関係については、様々な方法が考えられます。

また、駒の移動先を求める手段として、近年はビットボードを用いる方法が主流ですが、ビットボードを使わない方法もあります。

私は今回、将棋盤として 81マス分の領域を用意し、ビットボードを用いる方針です。
将棋盤の座標と変数領域上の位置の対応関係については、まだ決めていません。

評価処理を行う場合、将棋盤の横の列(段)のデータが連続している方が処理しやすいので、現時点では、横の列が並ぶ形が有力と考えています。
posted by 将棋ゲーム趣味人 at 16:46| Comment(0) | TrackBack(0) | 将棋ソフト開発 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。