アブストラクト ストラテジー ゲームと AI をテストプレイしてみたところ、最初の数手と終盤の動きにゲーム中盤よりも時間がかかることに気付きました。
オープニングブックとエンドゲームデータベースを生成する良い方法は何ですか?これらのデータベースには何を保存する必要がありますか?
おそらく、perft 関数を使用できます。
private long perft(IBoard boardCopy, int depth)
{
long nodes = 0;
List<Move> moves = boardCopy.getMoves();
if (depth == 1) return moves.size();
for (int i = 0, n = moves.size(); i < n; i++)
{
boardCopy.make(moves.get(i), true);
nodes += perft(boardCopy, depth - 1);
boardCopy.undo(moves.get(i));
}
return nodes;
}
そして、現在の位置とスコアのコピーを保存するように拡張できますか?
次に、この情報を移動生成関数または検索自体に供給する必要がありますか?