快速业务通道

世界robocode机器人的四大运动方式分析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

世界robocode机器人的四大运动方式分析

时间:2010-11-29 IBM iiley

前言

Robocode 在短短的时间内风靡全球,全世界的robocode爱好者 设计出了大量的优秀智能机器人,他们都拥有各自的运动方式,有的很容易被击 中,有的却很难射击。设计一个好的运动方式是优秀robocode机器人取胜的关键 。上届世界中级组冠军Fermat就是靠他让敌人难以琢磨的运动躲过敌人一发发的 子弹而取得胜利。(当然,他的优秀的瞄准射击也是取胜的关键)怎样的运动才 能不被敌人击中,让敌人琢磨不透呢?这里我把常见的机器人运动方式分为4类 来详解。

明显有规律的主动运动

刚开始玩robocode的很多都会有这种感觉, Samples里面Walls最强,谁都打不到他。Wall就是一种很典型的明显有规律的主 动运动,他总是直线绕墙走,如图1:

图1

因为它几乎总是在动,而Sample里面的机器人的射击方法几乎都是直 接射击敌人的当前位置,由于子弹到达目标需要一定的时间,当子弹飞过去的时 候,Wall已经不在原来那个位置了,所以它们总是打不到它,因此在刚开始时它 看起来是那么的强大。但是,Walls并不能算一个优秀的机器人,它仅是作为一 个例子来介绍robocode机器人的制作方法,稍厉害一点的机器人都能很得心应手 的射击它,有的机器人甚至能枪枪必中的打它。他们大多运用了提前量的算法计 算出子弹到达Walls的时候Walls大概走的距离,然后攻击Walls下一步将要行走 的地方。至于怎样编码实现,已经超出了这篇文章的范围,你可以参考 Predictive targeting。

采取这一类运动方式的机器人很多,它们规律 很明显,很容易被掌握,像SpinBot总是做圆周运动(圆周运动的射击方法可以 参见 圆周瞄准),Corners 总是躲在角落不动……你会发现它们 都是很容易对付的角色,是不是要写出优秀的机器人就不能用这样的策略呢?当 然不是,在人眼看起来有规律的运动,机器人未必会认为有规律(这要取决于你 的机器人的分析方法)。特别是在群战的时候,你要顾及大量的敌人,你不可能 只关注一个敌人的运动,你要同时关注A或关注B的运动,因此即使A作了规律很 明显的运动,你也很难察觉。

典型的例子就是David McCoy的 PrairieWolf,你看它群战的时候经常待在角落做一种绕角落来回运动,但是你 却未必能很容易的射击他,还有就是Paul Evans的SandboxLump,它不仅是在角 落来回,而且还夹杂着很多的弧线运动,如图2:

图2

世界robocode机器人的四大运动方式分析(2)

时间:2010-11-29 IBM iiley

即使是单挑的时候,你的机器人也很难分析出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之间,这样的话则可以击中 敌人,所以来回运动也不一定总能使敌人打偏,靠你比较近的敌人就显得非常危 险。还有优秀的机器人一般能识别来回运动的敌人,它能计算出你来回的距离, 这样你可能就被别人百发百中了。所以如果你要采用这样的方法的话,可以添加 一些其他因数,比如说弧线来回运动,来回运动随机距离等等。

随机性 很强的主动运动

当你掌握了对付Wall和Spi

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号