我现在正在研究程序员如何根据最终幻想类战术游戏(策略游戏)的 Action 百分比模拟 AI 决策。
例如,AI 角色有以下 Action :
攻击1:10%
攻击2:9%
魔法:4%
移动:1%
这一切远未达到 100%
一开始我想有一个有 100 个空槽的数组,攻击会有 10 个槽,攻击 2 个数组上的 9 个槽。结合随机我可以让 Action 去做。我的问题是它不是很有效,或者看起来不是。同样重要的是,如果我进入空位我该怎么办。我是否必须为每个角色计算所有基于 100% 的 Action ,或者为每个人定义一个“默认” Action ?
或者也许有更有效的方式来查看所有这些?我认为该百分比是实现 AI 的最简单方法。
最佳答案
我能想到的最佳答案是列出您希望角色拥有的所有可能 Action ,给每个 Action 一个相对值,然后将所有 Action 缩放到总和 100%。
编辑:
例如,这是我的三个 Action 。我希望攻击和魔法的可能性相同,而逃跑的可能性是攻击或使用魔法的一半:
- 攻击 = 20
- 魔法 = 20
- 逃离 = 10
这加起来是 50,所以将每个除以这个总数得到一个小数值(乘以 100 得到百分比):
- 攻击= 0.4
- 魔力 = 0.4
- 逃离 = 0.2
然后,我将从中得出一个累积值列表(即每个条目都是该条目及其之前所有条目的总和):
- 攻击= 0.4
- 魔力 = 0.8
- 逃离 = 1
现在,生成一个介于 0 和 1 之间的随机数,并找到列表中大于或等于该数字的第一个条目。这就是您要采取的行动。
关于c# - 如何根据百分比管理 AI 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/673557/