我想让游戏中的角色执行部分随机但也受偏好影响的动作。例如,如果一个角色感到生气,他们大喊大叫的机会比讲笑话的机会高。所以我正在考虑如何确定角色将采取的行动。以下是我的想法。
解决方案#1:迭代每一个可能的动作。对每个动作进行随机滚动,然后将偏好值添加到该随机数。具有最高价值的行动是角色采取的行动。
解决方案#2:为一个动作分配一个数字范围,更有可能的动作范围更广。因此,如果随机掷骰结果从 1 到 5 的任意位置返回,则该角色会讲笑话。如果它返回 6-75,他们会大喊大叫。等等。
解决方案#3:将所有动作分组并制作一个分支树。他们会采取友好行动还是敌对行动?随机滚动(添加了偏好值)表示敌对。他们会进行身体攻击还是口头攻击?随机掷骰子说是口头的。继续往下走,直到你到达行动。
解决方案#1 是最简单的,但几乎没有效率。我认为解决方案#3有点复杂,但它不是更有效吗?
有没有人对这个特定问题有更深入的了解?#3 是最好的解决方案吗?有更好的解决方案吗?