首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算游戏中单位的值

计算游戏中单位的值
EN

Stack Overflow用户
提问于 2010-11-30 16:37:31
回答 2查看 179关注 0票数 1

我目前正在进行的游戏中,每个单位都有价值的生命值,盾牌和敏捷性,以及一定数量的六种武器。

B单位有2个激光器,2个重型激光,1个导弹发射器,没有离子发射器,没有重离子发射器,没有核导弹,5个生命体,2个护盾,以及40个敏捷。

我已经通过了一个很好的20种不同的算法,试图让MS平衡所有这些因素,给飞船一个分数。我目前的算法对一些较小的单元很有用,但是对于较大的单元却变得非常不平衡。

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

代码语言:javascript
运行
复制
damage = weapon1*damage1 + weapon2*damage2 + ...

伤害值乘以生命值+2*盾牌+2*敏捷。敏捷性和盾牌被成倍的增加,使它们的重量超过生命(一个单位不能被击中就不能失去生命)。我还减去了这个单位的费用。因此,我的一个单元的当前方程如下:

代码语言:javascript
运行
复制
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.

我希望第三单元的分数更高,但是第一单元和第二单元的分数很好。有谁能提出一个更好的公式,使数值平滑吗?

EN

回答 2

Stack Overflow用户

发布于 2010-11-30 17:42:33

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

请参阅“编程集体智能代码用于解决此类问题”一书。

票数 1
EN

Stack Overflow用户

发布于 2010-12-24 14:29:57

这个问题类似于我的云平衡示例 (开放源码,java)。只需按单位替换计算机,用武器处理即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4316099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档