问题标签 [minmax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 如何为 Min-Max 算法编写分析函数?
我正在尝试为类似于井字游戏的游戏编写 AI 代码。你可以在这里看到它的规则。
我正在使用的 min-max 算法和分析函数可以在这里找到
到目前为止我尝试过的方式:
- 我已经建立了一些对当前玩家有益的模式。(在 Python 中)
例如my_pattern = " ".join(str(x) for x in [piece, None, piece, piece, None])
- 我将这些图案与每块六角游戏板上的所有 6 个可能方向进行匹配(而不是空格)。准确地说,匹配
my_pattern
6 个不同的阵列(每个阵列代表 6 个不同方向之一)。
现在,这个分析函数实际上应该计算什么?
- 整个棋盘状态的得分?
- 船上最后一步的得分?
如果有人可以准确地描述分析功能的目的,那就太好了。
python - 了解井字棋的minmax算法(无递归)
我正在尝试在 Python 中为井字游戏编写一个极小极大算法。
我不需要代码帮助,只需要算法...... :-)
我试图在没有递归的情况下做到这一点,为了更好地理解它,我看看这个答案
所以,我的算法是这样的:
假设这em
是棋盘上所有空方格的列表。
'x' - 是人类(或计算机),'o' - 是树(极小极大算法)。
所以,算法的输入是一个井字棋盘,输出是下一步棋的平方...
我还对每个空方格使用字典,将分数放在那里以决定下一步。我们将其称为map
...
算法
em
采用大小的所有排列len(em)
- 对于每个排列,请执行以下操作:
从排列的第一个元素开始,放入“x”或“o”,例如,如果排列是
(2,4,6,7)
这样,算法会将“o”放在 2 处(因为它是树转),然后将“x”放在 4 处,依此类推.. .如果'x'在排列中获胜(它可以在中间,我们不需要填充它直到最后)
map[the_first_element_at_the_permutation]-=10
如果 'o' 在排列中获胜:
map[the_first_element_at_the_permutation]+=10
毕竟 - 我们正在寻找map
得分最高的元素,并将其作为下一步的正方形返回......
不幸的是 - 它不起作用......它适用于许多情况,但很少有它不起作用的情况......
例如:
x..
.o.
..x
现在轮到树了,它会在此处输入“o” :
x..
.o.
o.x
这不好,因为我可以把'x'放在右上角,我会赢....
你建议我做什么?为什么我的算法不起作用?(我工作了几天,我不知道该怎么办......)
c# - 我想知道我的 connect4 游戏的 minmax 算法有什么问题?
我尝试为 connect4 游戏编写 min max 算法,但是当我运行此代码时,它进入无限循环并且不返回移动或结果,所以我需要帮助以了解它有什么问题,我在 6 * 7 单元板中工作
c# - 我的 minmax 与 alpha beta 修剪有什么问题?
当我仅将 minmax 应用于我的 connect4 游戏时,它会得到正确的结果,直到深度 7 并且当我应用修剪以增加深度时,它会得到错误的结果,我需要帮助来知道我的逻辑或实现有什么问题?
python - Minmax tic-tac-toe 算法永不输
我正在尝试为永远不会输的井字游戏构建一个最小-最大算法......
我尝试通过阅读一些资料来构建它:
- http://neverstopbuilding.com/minimax
- http://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/(我构建了与这个非常相似的东西)。
这是代码:类树:
如果我的代码有问题,请告诉我!
但是,我总是能打败这个——我只需要做一个“叉子”
。例如:(我是 x,算法是 o)
我赢了……
有一种算法可以制作一棵可以阻止分叉的树吗?
javascript - 加载其他函数时,Min-Max 过滤器不起作用
01) 我有一个 JSON URL,我通过外部.js
文件将数据动态加载到 HTML 表中。
02)我有一个名称过滤器(第一列)。(它工作正常)
03)我对每一行都有一个乘法函数。(它工作正常)
04)我有一个 3d 列的 min-max 函数。(虽然它曾经工作过,但它不起作用)。
链接在这里:LINK
代码显示在这里:
我也在其中调用过滤器函数。我无法弄清楚为什么它不起作用。
UPD:我更改了标题中调用的顺序,现在效果更好。但仍然不能 100% 工作。
c++ - 最小和最大循环
我正在为一项任务编写代码,该程序希望我制作一个程序,询问用户他们想要输入的整数数量,然后它接受每个输入,同时测试该值是最大值还是最小值。除了 1 之外,我的程序对于输入的每个整数都运行良好。当我输入 int 1 时,仅记录最大值,即使输入的数字在技术上也是最小值,这是由于 if 语句导致循环在找到后重复如果数字是最大值或最小值,则输出,在这种情况下,数字将始终是最大值,因此测试永远不会再次运行。我怎样才能解决这个问题?
python - 当我应用最小-最大缩放时,Numpy 对称矩阵变得不对称
我有一个对称矩阵(1877 x 1877),这是矩阵文件。我尝试将 0-1 之间的值标准化。应用此方法后,矩阵不再对称。任何帮助表示赞赏。
python - minMax python RISK 策略 AI
我正在尝试让 AI 为回合制战略游戏(如 RISK)工作。我对 AI 编程有点陌生,但我认为我的问题可能只是传递了错误的参数或其他东西,无论哪种方式,如果有人能告诉我出了什么问题,或者其他任何会导致使用 minMax 解决这个问题的问题问题; 答案将不胜感激。我认为,问题在于沿线的某个地方(可能在传递“newBoard”时)“newBoard”被覆盖为一个大整数值
每个子列表中的数据是:名称、屏幕上的位置(此处不重要)、控制它的玩家(随机)、人口、它连接到的其他部门
如果我遗漏了任何内容,我非常乐意用任何所需的信息更新线程,谢谢。