首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Reversi/Othello游戏创建negamax/minimax节点

为Reversi/Othello游戏创建negamax/minimax节点
EN

Stack Overflow用户
提问于 2012-12-05 03:47:06
回答 1查看 1.1K关注 0票数 0

我为reversi游戏编写AI播放器,我决定用NegaMax或MiniMax。伪代码:

代码语言:javascript
复制
function negamax(node, depth, α, β, color)
    if node is a terminal node or depth = 0
        return color * the heuristic value of node
    else
        foreach child of node
            val := -negamax(child, depth-1, -β, -α, -color)
            {the following if statement constitutes alpha-beta pruning}
            if val≥β
                return val
            if val≥α
                α:=val
        return α

但是我需要发送node到这个函数,如何创建这个节点?像创建所有可能的状态移动的节点,然后为每个可能在节点中移动的人创建子节点?

如果你能在α,β值上提供帮助...

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-05 04:00:00

节点很可能表示单个状态。在游戏中,这是棋盘的状态(对于奥赛罗来说,棋子的位置,它是谁的移动。等等)。通常,在使用alpha/beta剪枝的游戏中,可以生成所有后续状态,但不能生成所有可能位置的所有状态。

如果您使用的是Java语言,那么节点对象可能有一个getChildren()方法来从该状态生成所有可能的移动,即节点对象本身。

至于在Integer.MIN_VALUE和Integer.MAX_VALUE中初始化的α,β值

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13710713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档