计算游戏中单位的价值

时间:2010-11-30 16:37:31

标签: excel artificial-intelligence machine-learning

我正在开发一款游戏,每个单位都有健康,盾牌和敏捷的价值,以及一定数量的六种武器。

e.g。 B单元有2个激光器,2个重型激光器和1个导弹发射器,没有离子发射器,没有重型离子发射器,没有核导弹,5个生命值,2个盾牌和40个敏捷性。

我已经完成了20种不同的算法,试图让MS Excel平衡所有这些因素,为船舶提供分数。我目前的算法适用于一些较小的单位,但与较大的单位

非常不平衡

每艘船都有一个伤害值,每种类型的武器都会乘以该武器的伤害并加在一起。

damage = weapon1*damage1 + weapon2*damage2 + ...

伤害值乘以生命+ 2 *盾+ 2 *敏捷。敏捷和盾牌倍增使他们的体重超过健康(一个单位如果不能被击中则不能失去健康)。我也减去了单位的成本。所以我目前对我的一个单位的等式如下:

value = damage*(health + 2*shield + 2*agility) - 3*cost

以下是一些例子:

  • 1 - 1单位激光,1生命值,93敏捷和成本1.总分为233。
  • 第2单元 - 2个激光器,一个导弹发射器和3个健康,但只有76个敏捷。分数是200.
  • 第3单元 - 6个激光器,30个生命值和15个盾牌,37个敏捷度 - 得分585.

我希望单元3的分数更高,但单元1和2的分数非常好。任何人都可以建议一个更好的方程式来平滑这些值吗?

2 个答案:

答案 0 :(得分:1)

我认为genetic programming算法是解决您描述的问题的好方法。遗传编程通过迭代演化算法的计算,以最小化成本函数。这是通过创建一组应用于算法的“突变”来完成的,例如,您将3R的单位成本降低的想法可能是其中一个突变。成本函数将相对于平衡概念增加/减少。将根据该成本函数评估突变。

请参阅书籍Programming Collective Intelligence了解Python代码以解决此类问题。

答案 1 :(得分:1)

此问题类似于我的cloud balancing example(开源,java)。只需用武器替换计算机和按武器处理。