问题标签 [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.

0 投票
1 回答
134 浏览

algorithm - 如何为 Min-Max 算法编写分析函数?

我正在尝试为类似于井字游戏的游戏编写 AI 代码。你可以在这里看到它的规则。

我正在使用的 min-max 算法和分析函数可以在这里找到

到目前为止我尝试过的方式:

  1. 我已经建立了一些对当前玩家有益的模式。(在 Python 中)

例如my_pattern = " ".join(str(x) for x in [piece, None, piece, piece, None])

  1. 我将这些图案与每块六角游戏板上的所有 6 个可能方向进行匹配(而不是空格)。准确地说,匹配my_pattern6 个不同的阵列(每个阵列代表 6 个不同方向之一)。

现在,这个分析函数实际上应该计算什么?

  1. 整个棋盘状态的得分?
  2. 船上最后一步的得分?

如果有人可以准确地描述分析功能的目的,那就太好了。

0 投票
0 回答
224 浏览

python - 了解井字棋的minmax算法(无递归)

我正在尝试在 Python 中为井字游戏编写一个极小极大算法。
我不需要代码帮助,只需要算法...... :-)
我试图在没有递归的情况下做到这一点,为了更好地理解它,我看看这个答案

所以,我的算法是这样的:
假设这em是棋盘上所有空方格的列表。
'x' - 是人类(或计算机),'o' - 是树(极小极大算法)。
所以,算法的输入是一个井字棋盘,输出是下一步棋的平方...

我还对每个空方格使用字典,将分数放在那里以决定下一步。我们将其称为map...

算法

  1. em采用大小的所有排列len(em)
  2. 对于每个排列,请执行以下操作:
  3. 从排列的第一个元素开始,放入“x”或“o”,例如,如果排列是(2,4,6,7)这样,算法会将“o”放在 2 处(因为它是树转),然后将“x”放在 4 处,依此类推.. .

  4. 如果'x'在排列中获胜(它可以在中间,我们不需要填充它直到最后)map[the_first_element_at_the_permutation]-=10

  5. 如果 'o' 在排列中获胜:map[the_first_element_at_the_permutation]+=10

毕竟 - 我们正在寻找map得分最高的元素,并将其作为下一步的正方形返回......

不幸的是 - 它不起作用......它适用于许多情况,但很少有它不起作用的情况......
例如:
x.. .o. ..x
现在轮到树了,它会在此处输入“o” :
x.. .o. o.x
这不好,因为我可以把'x'放在右上角,我会赢....


你建议我做什么?为什么我的算法不起作用?(我工作了几天,我不知道该怎么办......)

0 投票
1 回答
65 浏览

c# - 我想知道我的 connect4 游戏的 minmax 算法有什么问题?

我尝试为 connect4 游戏编写 min max 算法,但是当我运行此代码时,它进入无限循环并且不返回移动或结果,所以我需要帮助以了解它有什么问题,我在 6 * 7 单元板中工作

0 投票
0 回答
149 浏览

c# - 我的 minmax 与 alpha beta 修剪有什么问题?

当我仅将 minmax 应用于我的 connect4 游戏时,它会得到正确的结果,直到深度 7 并且当我应用修剪以增加深度时,它会得到错误的结果,我需要帮助来知道我的逻辑或实现有什么问题?

0 投票
1 回答
771 浏览

python - Minmax tic-tac-toe 算法永不输

我正在尝试为永远不会输的井字游戏构建一个最小-最大算法......

我尝试通过阅读一些资料来构建它:

  1. http://neverstopbuilding.com/minimax
  2. http://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/(我构建了与这个非常相似的东西)。

这是代码:类树:

如果我的代码有问题,请告诉我!

但是,我总是能打败这个——我只需要做一个“叉子”
。例如:(我是 x,算法是 o)

我赢了……
有一种算法可以制作一棵可以阻止分叉的树吗?

0 投票
2 回答
42 浏览

javascript - 加载其他函数时,Min-Max 过滤器不起作用

01) 我有一个 JSON URL,我通过外部.js文件将数据动态加载到 HTML 表中。

02)我有一个名称过滤器(第一列)。(它工作正常)

03)我对每一行都有一个乘法函数。(它工作正常)

04)我有一个 3d 列的 min-max 函数。(虽然它曾经工作过,但它不起作用)。

链接在这里:LINK

代码显示在这里:

我也在其中调用过滤器函数。我无法弄清楚为什么它不起作用。

UPD:我更改了标题中调用的顺序,现在效果更好。但仍然不能 100% 工作。

0 投票
1 回答
83 浏览

c# - 值未根据条件 c# 在 datagridview 中转换

如果 cell.value 是单元格必须包含的所有值中的最小值,我想根据条件更改 datagridview 列的值 "L" ,即低。如果该值是所有 cell.value = "H" 中的最高值,则其余应为中等。这是我到目前为止所做的:

结果如下:

在此处输入图像描述

我的问题是显示了中值和高值,但有时它会避开最低值,并且在某些列中不显示任何“L”。生成的数据是随机数据。

0 投票
4 回答
12125 浏览

c++ - 最小和最大循环

我正在为一项任务编写代码,该程序希望我制作一个程序,询问用户他们想要输入的整数数量,然后它接受每个输入,同时测试该值是最大值还是最小值。除了 1 之外,我的程序对于输入的每个整数都运行良好。当我输入 int 1 时,仅记录最大值,即使输入的数字在技术上也是最小值,这是由于 if 语句导致循环在找到后重复如果数字是最大值或最小值,则输出,在这种情况下,数字将始终是最大值,因此测试永远不会再次运行。我怎样才能解决这个问题?

0 投票
1 回答
369 浏览

python - 当我应用最小-最大缩放时,Numpy 对称矩阵变得不对称

我有一个对称矩阵(1877 x 1877),这是矩阵文件。我尝试将 0-1 之间的值标准化。应用此方法后,矩阵不再对称。任何帮助表示赞赏。

0 投票
0 回答
72 浏览

python - minMax python RISK 策略 AI

我正在尝试让 AI 为回合制战略游戏(如 RISK)工作。我对 AI 编程有点陌生,但我认为我的问题可能只是传递了错误的参数或其他东西,无论哪种方式,如果有人能告诉我出了什么问题,或者其他任何会导致使用 minMax 解决这个问题的问题问题; 答案将不胜感激。我认为,问题在于沿线的某个地方(可能在传递“newBoard”时)“newBoard”被覆盖为一个大整数值

每个子列表中的数据是:名称、屏幕上的位置(此处不重要)、控制它的玩家(随机)、人口、它连接到的其他部门

如果我遗漏了任何内容,我非常乐意用任何所需的信息更新线程,谢谢。