当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

在Robocode中操纵Vector实现仇人列表[Java编程]

赞助商链接



  本文“在Robocode中操纵Vector实现仇人列表[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

前言

RoboCode的混战情势中,若何更好的掌握多个对手的情形,从而采纳更好的 战略,成为每一个玩家急迫需求办理的问题.而世界级的机械人大都采取了向量 (vector)数组的方法来保存多个对手的信息.

并且vector的作用不止于此,上届世界冠军Yngwie还利用vector来保存子弹 的命中率信息,为更好的抉择供应根据.当然这超越了我们本日的话题,有爱好 的朋友可以看一下Yngwie中的Enemy类和Strategy类.

好了,让我们正式开始本日的vector之旅吧,假如您对JAVA中的vector还不 是分外理解,不要紧,我在最后介绍了一些关于vector的知识.

给我们的仇人排个队

熟习JAVA的朋友都知道,vector是用来保存一系列对象的调集.本日我们用 他来保存我们的仇人的一些信息,把这些到处乱跑的家伙都抓进我们的调集还真 不是个轻松的活.孔子云:“万物皆类”.所以,我们首先要声明一个类: Track类.将我们能知道的仇人的属性全都作为这里类中的一个属性:名称、绝 对角度、仇人坦克相关于你车头方向的相对角度、距离、能量、速率和仇人坦克 所面对的方向等.这些都是通过ScannedRobotEvent对象得到的,具体的API函数 请参考Robocode的API帮忙.代码以下:

/**
  * Track类,保存目标的信息
  */
package mytest;
import robocode.*;
public class Track
{
     public String Name; //仇人坦克的名称
     //仇人的绝对角度,通过计算得出
    public double Heading;
     //仇人坦克相关于你车头方向的相对角度
    public double Bearing;
     public double Distance; //仇人坦克的距离
     public double Energy; //能量
     public double Velocity; //速率
     public double FaceHeading; //仇人坦克面向的方向
     public double trackX,trackY; //仇人坦克的坐标
    //下一个尺度时间中仇人坦克所在的位置
   public double nextTrackX,nextTrackY;
     public void update(ScannedRobotEvent e)
     {
        Name=e.getName(); //仇人坦克的名称
        Bearing=e.getBearing(); //仇人坦克相关于你车头方向的 相对角度
        Distance=e.getDistance(); //仇人坦克的距离
        Energy=e.getEnergy(); //能量
        Velocity=e.getVelocity(); //速率
        FaceHeading=e.getHeading(); //仇人坦克面向的方向
     }
}


  以上是“在Robocode中操纵Vector实现仇人列表[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 在Robocode中操纵Vector实现仇人列表
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .