问题标签 [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.
artificial-intelligence - 如何定义我的操作池,使其依赖于 GOAP 中的变量?
我正在尝试在我的游戏中实现 GOAP。该游戏是一款模拟类游戏,不仅可以从 GOAP 中受益,而且几乎本质上是基于代理可以做什么范围的要求。
我有以下代码。这里没有规划器,只有动作、状态等的定义
现在我只使用布尔值,因为对于我的测试用例,它是关于代理移动到一个位置,拿起一个项目,然后将它移动到另一个位置。稍后,目标可能是移动n 个项目或其他东西。
行动将是:
- Goto(将代理置于适当位置)
- 拾取(将物品归入所有)
- Goto(将代理置于适当位置)
- 放下(将物品放在某个位置) 目标达成!
但是我如何使用Goto
这里的动作两次呢?效果是一样的,设置“isAtPosition”变量。我需要为“isAtItemPosition”和“isAtDestinationPosition”创建一个新的状态变量吗?
因为那似乎我会为每个可能的目标有效地制定特定的行动,其效果是我确定了所有可能的行动序列。
如何对状态信息进行编码,以便池中的相同操作可以应用于不同阶段,产生不同的效果?(转到项目位置与转到目标位置)。
java - 验证迭代深化的启发式函数
对于 Mancala 游戏,我正在编写一个迭代深化算法。这是代码:
我还提供了一个启发式函数,由 board.scoreHeuristic() 给出。这实质上是玩家的得分差异除以可能获胜的总金额。在这个版本的 Mancala 中,这应该是 72(12 个坑,每个坑 6 个 ambos)。我知道这是不可能的,但几乎,无论如何。
我的代码偶尔会陷入无限循环,我认为问题在于启发式,有时会返回 0。我无法理解为什么会发生这种无限循环。