在Robocode中使用Vector实现敌人列表 - 编程入门网
在Robocode中使用Vector实现敌人列表时间:2010-11-29 IBM 羌狼前言 RoboCode的混战模式中,如何更好的掌握多个对手的情况,从而采取更好的 策略,成为每一个玩家迫切需要解决的问题。而世界级的机器人大都采用了向量 (vector)数组的方式来保存多个对手的信息。 而且vector的作用不止于此,上届世界冠军Yngwie还使用vector来保存子弹 的命中率信息,为更好的决策提供依据。当然这超出了我们今天的话题,有兴趣 的朋友可以看一下Yngwie中的Enemy类和Strategy类。 好了,让我们正式开始今天的vector之旅吧,如果您对JAVA中的vector还不 是特别了解,没关系,我在最后介绍了一些关于vector的知识。 给我们的敌人排个队 熟悉JAVA的朋友都知道,vector是用来保存一系列对象的集合。今天我们用 他来保存我们的敌人的一些信息,把这些四处乱跑的家伙都抓进我们的集合还真 不是个轻松的活。孔子云:“万物皆类”。所以,我们首先要声明一个类: Track类。将我们能知道的敌人的属性全都作为这里类中的一个属性:名称、绝 对角度、敌人坦克相对于你车头方向的相对角度、距离、能量、速率和敌人坦克 所面对的方向等。这些都是通过ScannedRobotEvent对象得到的,具体的API函数 请参考Robocode的API帮助。代码如下:
在Robocode中使用Vector实现敌人列表(2)时间:2010-11-29 IBM 羌狼在战场上,一个优秀的指挥官会很好的利用他手头有限的信息,而我们的信 息都来自于雷达找到敌人后产生的ScannedRobotEvent事件,至于我们能得到哪 些信息,看上边的注释好了,不多解释了。 下一步就是如何把已经现身在雷达中的敌人抓到一个vector里去了,让我们 回到我们的机器人主体中去:派生自AdvancedRobot 类的MyVector类中。 首先,声明一个vector类型,并在run中进行初始化。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |