通过对我的抽象策略游戏与 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;
}
并且可以增强保存当前位置和分数的副本吗?
然后应该将此信息提供给移动生成功能还是搜索本身?