我正在构建一个跳棋应用程序。
我已经开始构建AI并且我已经阅读了很多关于minimax的内容。
有些东西我无法理解,我应该使用什么类型的树来构建“游戏树”(我在JAVA编程)
答案 0 :(得分:2)
一般来说,minimax游戏树很简单:每个节点代表一个游戏状态,并包含一个代表所有允许移动的子节点的集合。
这是一个可能的实现:
class Node {
private Board state;
private Map<Move, Node> children;
}
答案 1 :(得分:0)
也可以在不明确编码游戏树的情况下实现minimax算法。在每个递归步骤中,移动实际上是在游戏板的某些表示上完成的,然后再次重新调用评估,并且在评估之后不执行移动以进行评估。这种方法具有更高的内存效率,因为只有所考虑的游戏树的节点才被明确表示。在这种方法中,调用堆栈和游戏板表示可以一起解释为游戏树的节点迭代器。