Min-Maxとαβカット

このプログラムのアルゴリズムには標準的な手法のみを使用しているのだが、一つの配置を128bitの値一つで示すことで白番と黒番を64bitシフトで簡単に入れ替える事ができる。
そのためMaxノードとMinノードで関数を分ける必要はない。
ゲームが終了したかどうかは着手可能手を真面目に数えて、自分が置ける場合で相手が置ける場合はスキップ、両方置けない場合は石数の差を返す。

探索の順序は以下のような評価を行って並べ替えをし、次のノードを探索する

    1. 第一手の場合、モンテカルロ法で評価する
    2. それ以外の場合、(自分の着手可能手)-(相手の着手可能手)+(自分の4角の石の数)-(相手の4角の石の数)

非常に単純だが、最初のスタートしては複雑でない方がよい。