问题标签 [game-ai]

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 回答
1698 浏览

math - 如何计算给定树上的平均分支因子

谁能向我解释一下,如果我们在计算 b 时排除叶节点,平均分支因子的值是多少?

例子:

树

我不知道如何以正确的方式计算:/

非常感谢

0 投票
1 回答
68 浏览

artificial-intelligence - 如何定义我的操作池,使其依赖于 GOAP 中的变量?

我正在尝试在我的游戏中实现 GOAP。该游戏是一款模拟类游戏,不仅可以从 GOAP 中受益,而且几乎本质上是基于代理可以做什么范围的要求。

我有以下代码。这里没有规划器,只有动作、状态等的定义

现在我只使用布尔值,因为对于我的测试用例,它是关于代理移动到一个位置,拿起一个项目,然后将它移动到另一个位置。稍后,目标可能是移动n 个项目或其他东西。

行动将是:

  1. Goto(将代理置于适当位置)
  2. 拾取(将物品归入所有)
  3. Goto(将代理置于适当位置)
  4. 放下(将物品放在某个位置) 目标达成!

但是我如何使用Goto这里的动作两次呢?效果是一样的,设置“isAtPosition”变量。我需要为“isAtItemPosition”和“isAtDestinationPosition”创建一个新的状态变量吗?

因为那似乎我会为每个可能的目标有效地制定特定的行动,其效果是我确定了所有可能的行动序列。

如何对状态信息进行编码,以便池中的相同操作可以应用于不同阶段,产生不同的效果?(转到项目位置与转到目标位置)。

0 投票
1 回答
71 浏览

java - 验证迭代深化的启发式函数

对于 Mancala 游戏,我正在编写一个迭代深化算法。这是代码:

我还提供了一个启发式函数,由 board.scoreHeuristic() 给出。这实质上是玩家的得分差异除以可能获胜的总金额。在这个版本的 Mancala 中,这应该是 72(12 个坑,每个坑 6 个 ambos)。我知道这是不可能的,但几乎,无论如何。

我的代码偶尔会陷入无限循环,我认为问题在于启发式,有时会返回 0。我无法理解为什么会发生这种无限循环。