我目前正在进行的游戏中,每个单位都有价值的生命值,盾牌和敏捷性,以及一定数量的六种武器。
B单位有2个激光器,2个重型激光,1个导弹发射器,没有离子发射器,没有重离子发射器,没有核导弹,5个生命体,2个护盾,以及40个敏捷。
我已经通过了一个很好的20种不同的算法,试图让MS平衡所有这些因素,给飞船一个分数。我目前的算法对一些较小的单元很有用,但是对于较大的单元却变得非常不平衡。
每艘船都有一个伤害值,每种武器都乘以该武器的伤害并加在一起。
damage = weapon1*damage1 + weapon2*damage2 + ...
伤害值乘以生命值+2*盾牌+2*敏捷。敏捷性和盾牌被成倍的增加,使它们的重量超过生命(一个单位不能被击中就不能失去生命)。我还减去了这个单位的费用。因此,我的一个单元的当前方程如下:
value = damage*(health + 2*shield + 2*agility) - 3*cost
下面是一些示例:
我希望第三单元的分数更高,但是第一单元和第二单元的分数很好。有谁能提出一个更好的公式,使数值平滑吗?
发布于 2010-11-30 17:42:33
我认为遗传规划算法是解决您描述的问题的好方法。遗传规划通过迭代进化算法的计算,以最小化成本函数。这是通过创建一组“突变”来应用到算法中来实现的,例如,您将单位成本降低为3R的想法可能就是其中之一。相对于平衡的概念,成本函数将是增加/减少的函数。突变将根据这一成本函数进行评估。
请参阅“编程集体智能代码用于解决此类问题”一书。
发布于 2010-12-24 14:29:57
这个问题类似于我的云平衡示例 (开放源码,java)。只需按单位替换计算机,用武器处理即可。
https://stackoverflow.com/questions/4316099
复制相似问题