标题: 请教:关于网页游戏的资源消耗的计算问题
shenys
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 31446
精华 0
积分 322
帖子 56
威望 0
现金 490 银币
金币 0 金币
阅读权限 40
注册 2007-6-13
状态 离线
发表于 2007-8-30 13:15  资料  个人空间  短消息 

请教:关于网页游戏的资源消耗的计算问题


请教计算算法:
现有资源a,每小时产量b,我下线前设定生产n个士兵,每m分钟生产1个士兵,每个士兵每小时消耗x点资源。

当我过了若干时间后(假设,在所有士兵生产完成以后)上线,这时应该怎么计算现有资源的数量?
如果可能建议精确到分或更高。

请教这里的高人这个算法如何写啊,谢谢!

顶部
[广告] 那啥,不回老家结婚的就来DOTA吧!
轻狂物语
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18


UID 39336
精华 0
积分 456
帖子 51
威望 0
现金 2610 银币
金币 0 金币
阅读权限 40
注册 2007-7-30
状态 离线
发表于 2007-8-30 13:20  资料  个人空间  主页 短消息  QQ

你也打算写游戏的说?

顶部
轻狂物语
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18


UID 39336
精华 0
积分 456
帖子 51
威望 0
现金 2610 银币
金币 0 金币
阅读权限 40
注册 2007-7-30
状态 离线
发表于 2007-8-30 13:22  资料  个人空间  主页 短消息  QQ

时间
自由转换就可以了
读取服务器的时间
看玩家是什么时间开始的
这样就能准确的计算资源了

顶部
[广告] 绿豆蛙四格漫画填字活动
shenys
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 31446
精华 0
积分 322
帖子 56
威望 0
现金 490 银币
金币 0 金币
阅读权限 40
注册 2007-6-13
状态 离线
发表于 2007-8-30 13:27  资料  个人空间  短消息 

写这种东西对我而言不算难,不过算法就。。。
由于士兵是一个一个出来的,那么计算最终库存资源就不是很简单,所以有个算法问题,
还有就是每小时产量x,每分钟的产量除下来有小数,如何处理?

顶部
轻狂物语
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18


UID 39336
精华 0
积分 456
帖子 51
威望 0
现金 2610 银币
金币 0 金币
阅读权限 40
注册 2007-7-30
状态 离线
发表于 2007-8-30 18:21  资料  个人空间  主页 短消息  QQ

?
怎么可能出现小数了?
如果是每5分长生一个士兵
那么我要招募100个
那么就需要500分钟
500分钟是小数吗?

顶部
[广告] 把自己写进最经典的角色扮演游戏中去,这就是同人版魔法门7!(第二版)
cosin
骑士
Rank: 24Rank: 24Rank: 24



UID 23179
精华 0
积分 1762
帖子 23
威望 0
现金 3454 银币
金币 0 金币
阅读权限 50
注册 2007-4-26
状态 离线
发表于 2007-8-30 21:35  资料  个人空间  短消息 

假设 u 分钟生产一单位,每单位消耗 x 个资源
玩家下线到上线之间的时间为 m 分钟
资源总数为 t ,资源增长速度为 b / 小时 = b / 60 分钟 (资源按小时结算

比较简单的算法 : 剩余资源数 r, 生产单位数 c
函数 floor :向下取整

t = t + floor(m  / 60) * b
z = floor(m / u) * x
if (z > t)
{
        c = floor(t / x)
}
else
{
        c = x
}
r = t - c * x

此算法未考虑资源增长率低于资源消耗率的情况

[ 本帖最后由 cosin 于 2007-8-30 21:39 编辑 ]

顶部
[广告] 把自己写进最经典的角色扮演游戏中去,这就是同人版魔法门7!(第二版)
FreePlan
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 54109
精华 0
积分 772
帖子 14
威望 0
现金 2508 银币
金币 0 金币
阅读权限 40
注册 2007-8-19
状态 离线
发表于 2007-8-30 21:50  资料  个人空间  短消息 

for(int i = 0; i < floor(t/m); i++) {
  used += (t - (i + 1) * m)* x     /* t:玩家离线的分钟数,used:玩家离线后资源总消耗*/
}
resource = a + (b/60)*t - used

如果还要生产农民,那么资源随之增长,模型就更复杂一点了

顶部
[广告] 绿豆蛙四格漫画填字活动
轻狂物语
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18


UID 39336
精华 0
积分 456
帖子 51
威望 0
现金 2610 银币
金币 0 金币
阅读权限 40
注册 2007-7-30
状态 离线
发表于 2007-8-30 21:59  资料  个人空间  主页 短消息  QQ

现在的高手就是多啊
只是没被发现的说

顶部
[广告] 那啥,不回老家结婚的就来DOTA吧!
FreePlan
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 54109
精华 0
积分 772
帖子 14
威望 0
现金 2508 银币
金币 0 金币
阅读权限 40
注册 2007-8-19
状态 离线
发表于 2007-8-30 22:02  资料  个人空间  短消息 

最简单的方法:每个单位看作一个对象,比如士兵,存活时间看作其一个属性,那么该士兵任意时刻的资源消耗量就知道了=生存期*单位时间消耗量,想知道系统的资源量,挨个遍历每个对象就行了  对象模型,就这么搞

顶部
[广告] 论坛投票锁帖系统(主题帖投票)启用,会员可以控制帖子的关闭与否
轻狂物语
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18


UID 39336
精华 0
积分 456
帖子 51
威望 0
现金 2610 银币
金币 0 金币
阅读权限 40
注册 2007-7-30
状态 离线
发表于 2007-8-30 22:11  资料  个人空间  主页 短消息  QQ

呵呵
看来真是高手啊

顶部
[广告] 把自己写进最经典的角色扮演游戏中去,这就是同人版魔法门7!(第二版)
shenys
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 31446
精华 0
积分 322
帖子 56
威望 0
现金 490 银币
金币 0 金币
阅读权限 40
注册 2007-6-13
状态 离线
发表于 2007-8-31 10:42  资料  个人空间  短消息 

这里高手就是多!先感谢各位了,上面的代码我会仔细研究。

顶部
[广告] 绿豆蛙四格漫画填字活动
shenys
准骑士
Rank: 18Rank: 18Rank: 18Rank: 18



UID 31446
精华 0
积分 322
帖子 56
威望 0
现金 490 银币
金币 0 金币
阅读权限 40
注册 2007-6-13
状态 离线
发表于 2007-8-31 11:00  资料  个人空间  短消息 

感谢 cosin 和 FreePlan 的代码,我感觉 FreePlan 的代码的精确度应该跟高点。cosin 的代码应该是只算了最后的总和,在第一个时间段只有1个单位消耗资源,而第二个时间段就有2个单位消耗资源,以后以此类推,当生产的单位比较多,并且离线时间长的话会有很大出入。

顶部
[广告] web棋牌市 6.16内测开启
 



当前时区 GMT+8, 现在时间是 2008-10-14 07:04
沪ICP备06036464号

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0 Licensed  © 2001-2007 Comsenz Inc.
Processed in 0.055447 second(s), 11 queries , Gzip enabled

清除 Cookies - 联系我们 - Chinese Webgame BBS 中国网页游戏论坛 - Archiver - WAP