半吊子
日历
网志分类
· 所有网志 (82)
站内搜索
友情链接
· 歪酷博客
· 我的歪酷 非非共享界

订阅 RSS

0069911

歪酷博客

« 上一篇: 当一个妇科医生(1)——即时战略中的士兵移动 下一篇: 她应该只是换了名字——献给梅艳芳 »
天地间有我 @ 2004-08-01 15:11

       昨天开始当妇科医生,今天早上见两位好友,被其中的一位畅快淋漓的骂了一顿。他的观点其实是我从前告诉他的我的观点;换句话说,也是好几年前一位叫庄子的老先生通过一本书告诉我的。这位老先生早我两千多年的就驾鹤西游,够奔极乐世界。而那位好友衍生出的观点就是:你不是妇科医生,你怎么知道妇科医生做爱没有趣味。这句话问的我哑口无言。先莫要说妇科医生是否感到有趣味。就说我本身,也不知道那件事情是不是一件有趣的事情。

       关于什么是有趣的事情,有很多解释。小波的解释是,有幽默感。而小波所谓的幽默感也就是把坦白材料写成维多利亚式的色情小说;把一些军管干部想象成驴子;和一个四十多岁的革命委员会的主任玩生死时速……这些东西在我看来还是没有什么太大的幽默感的。而至于我,还是没有什么这阅历去解释什么是幽默感。应此我不能用这个方法解释什么是有趣的事情。

       至于,我怎么知道这件事情可能是有趣的事情的,我不想太多解释。这可能就如同我们大家在襁褓中时都知道用吮吸来取得食物的道理一样。大概知道这事一件有趣的事情的道理,我们从那时就知道了。但至于妇科医生是不是感到有趣……我想做很多类比的解释。比如,名厨能做出好菜,但他自己只喜欢喝浓茶之类的比喻。但我想以半天,这些单薄的比喻还是不能经受的住“汝非鱼,安知鱼之乐乎?”的反驳。

       因此作罢。

       至于好友,让他说他的。这其实也是我们之间的玩笑。但为什么上面我会发一些牢骚之类的感慨,这可能的确是想解释三件事:
       1、我很赞同“汝非鱼,安知鱼之乐乎?”这一观点。这可能,就是为什么我现在喜欢演讲,而不喜欢辩论的原因了。
       2、我确实没有足够的人生阅历去解释什么是“有趣的”
       3、我将我行我素的把《当一个妇科医生》的系列进行下去。我不想能有谁能用我提供的思路能开发出什么好的游戏。我只想,记录下我算法研究,尤其是游戏中的算法研究的点点滴滴。

       昨天下载了《三国志X》从INSTALL到UNINSTALL不到半小时,很大一部分原因是因为是日文的。还有很大的原因还是感到——没有趣味。而其中的(宏观)战斗时关于双方兵力,士气,兵种克制,攻击力,增援以及随战争进行兵力减少等数值的算法是十分值得研究的。或许是由于简单的缘故,我在网上几乎没有找到相关算法的文章。

       下面是我自己根据我从前玩《三国志》系列游戏,总结的数学模型算法可以保证游戏中战争的游戏性与真实性兼顾,希望可以给有需要这方面开发的人一些启迪。其中还有很多值得商榷的地方,欢迎讨论。

       假设用x(t)和y(t)表示甲乙交战双方在t时刻的兵力,如果是开始时可视为双方士兵人数。

       假设每一方的战斗减员率取决于双方兵力和战斗力,用f(x,y)和g(x,y)表示,每一方的增援率是给定函数用u(t)和v(t)表示。

       如果双方用正规部队作战(可假设是相同兵种),先分析甲方的战斗减员率f(x,y)。可知甲方士兵公开活动,处于乙方没一个士兵的监视和杀伤范围之内,一但甲方的某个士兵被杀伤,乙方的火力立即集中在其余士兵身上,所以甲方的战斗减员率只与乙方的兵力有关可射为f与y成正比,即:

f=ay

       a表示乙方平均每个士兵对甲方士兵的杀伤率(单位时间的杀伤数),成为乙方的战斗有效系数。

       类似g=-bx这个战争模型模型方程1为

x’(t)= -a*y(t)+u(t)          x’(t)是x(t)对于t的导数
y’(t)= -b*x(t)+v(t)          y’(t)是y(t)对于t的导数


       利用给定的初始兵力,战争持续时间,和增援兵力可以求出双方兵力在战争中的变化函数。

       如果考虑由于士气和疾病等引起的非战斗减员率(一般与本放兵力成正比,设甲乙双方分别为h,w)可得到改进战争模型方程2:

x’(t)= -a*y(t)-h*x(t)+u(t)
y’(t)= -b*x(t)-w*y(t)+v(t)


       利用初始条件同样可以得到双方兵力在战争中的变化函数和战争结果。

       此外还有不同兵种作战(兵种克制)的数学模型:
       模型1中的战斗有效系数a可以进一步分解为a=ry*py*(sry/sx),其中ry是乙方的攻击率(每个士兵单位的攻击次数),py是每次攻击的命中率。(sry/sx)是乙方攻击的有效面积sry与甲方活动范围sx之比。类似甲方的战斗有效系数b=rx*px*(srx/sy),rx和px是甲方的攻击率和命中率,(srx/sy)是甲方攻击的有效面积与乙方活动范围sy之比。由于增加了兵种克制的攻击范围,所以战斗减员率不光与对方兵力有关,而且随着己放兵力增加而增加。因为在一定区域内,士兵越多被杀伤的就越多。

       方程

x’(t)= -ry*py*(sry/sx)*x(t)*y(t)-h*x(t)+u(t)
y’(t)= -rx*px*(srx/sy)*x(t)*y(t)-w*y(t)+u(t)


       以上是几种战争模型的算法,由于笔者能力有限,文中难免有不足和错误之处,欢迎大家指正交流。


最新评论


红移

2004-08-09 18:05

AI是一个非常重要而有趣的课题,研究它永远也没有止境。微软有专门的部门研究AI,虽然不是为了游戏。

我曾经看到两篇最牛的A*算法。一个是带转弯半径的(比如,轮船、汽车),另一个是支持队形的。呵呵



天地间有我

2004-08-09 21:30

A*算法现在简直是被一些高手玩的出神入化了。我这段时间也在看A*算法的一个高级研究。。。很是入迷。。。

真希望有机会向前辈们学习。。。。。


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定