minimax

    1热度

    8回答

    我有对象的一个​​这样的数组: arr = [ {name: "Alex", value: 1}, {name: "Bill", value: 2}, {name: "Jim", value: 3}, {name: "Dim", value: 5} ] 我想快速和干净的方式具有最小的一个最大值值属性 min = 1, max = 5

    3热度

    2回答

    作为一个练习项目,我在JSFiddle上制作了Tic-Tac-Toe游戏(因为已经不够了,对不对?),然后我开始添加无与伦比的AI。在大多数情况下,它可以工作,但是有一些组合(例如,将X设置为5,9,3或5,7或9),导致计算机无法正确计算最佳移动。 上的jsfiddle项目:https://jsfiddle.net/jd8x0vjz/ 及相关函数开始行63: function evaluateM

    4热度

    3回答

    https://leetcode.com/problems/guess-number-higher-or-lower-ii/#/description。 我们玩猜猜游戏。游戏如下: 我从1到n挑选一个数字。你必须猜测我挑选了哪个号码。 每当你猜错了,我会告诉你我选择的号码 是高还是低。 但是,当您猜测某个特定的数字x,并且您猜错了时,您支付$ x $ 。当你猜测我选择的数字时,你赢得比赛。 给定一

    -1热度

    1回答

    我正在研究tic tac toe(用户vs计算机)的AI,并且我正在使用minimax算法实现计算机的最佳移动。我已经看过YouTube上的一些视频,并阅读了一些人的代码。但是,有些部分代码我仍然对正在做的事感到困惑。以下面的代码为例,来自井号最小极小函数。有一个主要的if,else if,else语句和其他所有从那里得到的。我的主要问题是理解嵌入的for循环,以及后面的2个if。我认为,我已经对

    0热度

    1回答

    所以我目前正在做一个关于Mancala和NIM组合游戏的MiniMax算法的作业。该程序的工作方式是向用户询问板的当前状态,并且该程序将假设吐出用户应该采取的第一个举动以赢得比赛。我只是困惑,我是否想用所有可能的解决方案生成整个游戏树,并且在叶节点首先具有效用函数,然后让MiniMax算法递归运行,或者在MiniMax算法中创建树?我很抱歉,如果这个问题很不清楚,但我只是坚持这个想法,我似乎无法理

    2热度

    1回答

    我一直在工作了一段时间,人工智能问题,并在这个星期我已经尝试编码AI连接4与Python。首先我有复制板的问题,但我想在Python中你需要使用deepcopy来避免复制错误 最后,我设法创建了alpha-beta修剪算法,它工作正常,但后来我测试了我的算法深度8对在线alpha-beta修剪算法深入6,令人惊讶的是我的算法丢失了,我用harvard的教师创建了评估函数,并且从msavenski的

    0热度

    1回答

    正确得分分支我试图创造C.一个完美的井字棋游戏,我用一个二维数组来跟踪板。 我已经将问题缩小到了我的minimax函数对每个潜在移动进行评分的方式,但我在调试时遇到了问题,因为错误通常发生在第二步移动周围,并且我无法跟踪所有潜在的游戏状态从那一点。 电脑进入第一,并且总是“X”。 minimax正在从computerMove函数中调用,该函数尝试每个可用的移动,然后将它们最小化。它将从minima

    1热度

    1回答

    我正在为我制作的原创4人棋盘游戏创建AI。关于棋盘游戏 详情: 4名球员轮流同时移动他们的有色件在四个主要方向之一。碎片可以从板上移开。每个玩家在开始时都有5条生命。对于从棋盘上移走的棋子,玩家会失去1点生命。新作品将在整个游戏中确定性地产生。 我抬起头如何做一个minimax算法,发现this。我通读了这篇文章,并认为我理解了所有内容,所以我试图将第1.5节中的Java代码翻译成Swift。 这

    1热度

    1回答

    我试图掌握MiniMax算法,并且已经阅读了它。我最初的方法是实现一个简单的MiniMax算法,然后添加alpha-beta修剪。然而,这是我当前的代码: public int miniMax(char[] node, int playerNum) { int victor = checkWin(node); // returns 0 if game is ongoing, 1 for

    1热度

    1回答

    我想在python中写一个国际象棋引擎,我可以找到给定位置的最佳举动,但我努力从该位置收集主要变化,以下是我所到目前为止已经试过: def alphabeta(board, alpha, beta, depth, pvtable): if depth == 0: return evaluate.eval(board) for move in board.lega