コンピュータ将棋の進捗

昨日、将棋ソフトを1から作ると宣言(https://dksk.hatenablog.com/entry/2018/08/01/105154)し、2日間経過した。

データ構造の指針

効きの差分計算を容易にするため、盤サイズを81マス丁度にせず、盤端に番兵を容易する。 11x11の盤面は64bit x 2のBitBoardに収まるため、bitboardのサイズは大きくならない。

実装したこと

BitBoardによる効きの計算のコードと、王手されていない局面での盤上の駒を移動させる手の生成を書いた。 ただし、飛車の横効きの計算のコードが適当なので、実行速度に不満があればその時書き直す。

これから実装すること

その1

駒打ち生成、王手回避手生成、盤面の初期化。このあたりを実装したら指し手生成祭りをやる。明後日にここまで出来れば、1週間でのルール部分の開発が間に合いそう。

その2

手をすすめる/戻す、王手判定。できればSEEも。ここまで実装すれば、探索部やUSIへの対応に取り掛かれる。