- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Robocode 机器人的四大运动方式分析
07302010015 周磊 整理
前言
Robocode在短短的时间内风靡全球,全世界的robocode爱好者设计出了大量的优秀智能机器人,
他们都拥有各自的运动方式,有的很容易被击中,有的却很难射击。设计一个好的运动方式是优秀
robocode机器人取胜的关键。上届世界中级组冠军Fermat就是靠他让敌人难以琢磨的运动躲过敌人
一发发的子弹而取得胜利。(当然,他的优秀的瞄准射击也是取胜的关键)怎样的运动才能不被敌人
击中,让敌人琢磨不透呢?这里我把常见的机器人运动方式分为4类来详解。
明显有规律的主动运动
刚开始玩 robocode 的很多都会有这种感觉,Samples 里面 Walls 最强,谁都打不到他。Wall 就
是一种很典型的明显有规律的主动运动,他总是直线绕墙走,如图1:
图1
因为它几乎总是在动,而Sample里面的机器人的射击方法几乎都是直接射击敌人的当前位置,
由于子弹到达目标需要一定的时间,当子弹飞过去的时候,Wall 已经不在原来那个位置了,所以它
们总是打不到它,因此在刚开始时它看起来是那么的强大。但是,Walls 并不能算一个优秀的机器人,
它仅是作为一个例子来介绍robocode机器人的制作方法,稍厉害一点的机器人都能很得心应手的射
击它,有的机器人甚至能枪枪必中的打它。他们大多运用了提前量的算法计算出子弹到达Walls的时
候Walls大概走的距离,然后攻击Walls下一步将要行走的地方。
采取这一类运动方式的机器人很多,它们规律很明显,很容易被掌握,像SpinBot总是做圆周运
动(圆周运动的射击方法可以参见圆周瞄准),Corners总是躲在角落不动……你会发现它们都是很
容易对付的角色,是不是要写出优秀的机器人就不能用这样的策略呢?当然不是,在人眼看起来有规
律的运动,机器人未必会认为有规律(这要取决于你的机器人的分析方法)。特别是在群战的时候,
你要顾及大量的敌人,你不可能只关注一个敌人的运动,你要同时关注A或关注B的运动,因此即使
A作了规律很明显的运动,你也很难察觉。
典型的例子就是David McCoy的 PrairieWolf,你看它群战的时候经常待在角落做一种绕角落来
回运动,但是你却未必能很容易的射击他,还有就是 Paul Evans 的 SandboxLump,它不仅是在角落
来回,而且还夹杂着很多的弧线运动,如图2:
图2
即使是单挑的时候,你的机器人也很难分析出SandboxLump的具体规律,所以要击中它并不容易,
确切地说那实在是太难了。这里我要重要介绍一种被广泛采用的来回运动方式,如图3:
图3
假如机器人R1在A,B之间作直线来回运动,某一时刻机器人R1和机器人R2在如图所示位置,
R1目前是直线运动。如果R1的摆幅小于R1到R2的距离,R2用直线提前量的射击方法,射击点在B
点右边的 C 点,它发射了子弹,但是 R1 运动到 B 点的时候突然反向向 A 行驶,到达 A 后又返回向 B
行驶,如此反复,R2 的子弹就总是打在 A 点偏左或者 B 点偏右的地方。这就是来回运动的迷惑性,
哈哈,R1 能迷惑敌人了,它很强了吧?不,如果 R1 的摆幅大于 R1 与 R2 的距离。如图所显假设 R2
在R2’的位置,它计算的射击点C’在AB之间,这样的话则可以击中敌人,所以来回运动也不一定
文档评论(0)