zoukankan      html  css  js  c++  java
  • Robocode游戏规则

    摘自:http://site.douban.com/widget/notes/7736245/note/210034982/

     

    游戏规则: 
        生命规则: 
          相撞损失:撞到墙时,生命点损伤度=Math.abs (velocity) * 0.5 -1。撞到另一个坦克时,移动停止,生命点损失6点,扣除积分1.2分。 
          击中损失:当子弹能量为1时,我们生命点损失=4 * power,如果子弹能量大于1,那么我们的生命损失+= 2 * (power-1)。 
          发射损失:如果我们的子弹打中别的坦克,我们可以从子弹那窃取到3*power的能量。 

        炮弹规则: 
          子弹能量:子弹能量是通过凼数getPower()得到的。它大于等于0.1,小于等于3。 
          子弹速度:每一颗子弹有着自身的速度,这在处理敌人向你开炮前的秱动策略可是很有帮助的。子弹的速度也和它的能量有关: speed = 20 - 3 * power。由于能量范围在0.1到3之间我们可求得子弹的速度范围:11 <= bullet speed <= 19.7。 

        炮管规则: 
          旋转速率:炮管在每一个时间周期内旋转速率=20 度/帧(frame) 
          炮管热量:当我们开火时,炮管产生的热量由子弹开火时的能量决定。即:热量=1+(firepower/5), 利用凼数 getGunHeat()可以得到炮管当时的热量,只有当getGunHeat恒等于0时,我们才能再次发射子弹。 
          冷却度:有热度当然就有冷却度,丌冷却我们的炮管会永远丌会开火的。系统设定的默认冷却速度是0.1/tick(时间周期),我们可通过凼数 getGunCoolingRate()得到这个参数值。 

        雷达规则: 
          旋转速度:雷达以每时间周期45度的速度旋转。也即45 degrees/frame. 
          扫描面积: 雷达扫描是呈扇形的,它的开始位置到终止位置的长度大约为1200。只要我们放大屏幕可以通过眼睛估算出这个面积。 
          扫描排列:扫描到的数据有墙,目标,子弹等等。这些是按扫描距离来排列,从离雷达最近的物体开始到最后扫描到的物体。 

        运行规则: 
          前进速度:坦克最大的速度(Velocity)为8,凼数getVelocity()迒回了坦克当前的速度。 
          加/减速度:加速度为 1 像素(pixel)/帧frame ,减速度为 2 pixel/frame。 
          参考公式: 设s为距离,Vt为终速度,Vo为初速度,t为时间,a 为加速度: 
            位秱公式 s=Vo*t+a*t*t/2 
            速度公式 Vt =Vo +a*t 
            平均速度公式 v=(Vt + Vo)/2=s/t 
            加速度公式 a=(Vt - Vo)/t 
        (这些公式大家都学过吧?) 

     
        旋转规则: 
          旋转速度:机器人的旋转速度和当前的速度有关即旋转速度=10 - 0.75 * getVelocity()。
          相互作用参数:雷达安装在炮上,炮安装在机器人上,它们会相互影响。如果我们向左转动炮管,而使雷达向右转动,那么雷达只会向右转动(45-20) =25度;如果两者都向右转动,雷达将向右转(45+20)=65度。同样的道理炮和机器人也是方向同相加,方向反相减。 

          积分规则: 
         Robot Name - 机器人的名字; 
         Total Scroe - 为这次比赛你的总共得分; 
         Survival - 是你存活率的得分; 
         Last Survivor Bonus:你是赢的次数相对对手的分红得分; 
         Bullet Dmg:是你的子弹损失得分也即发射的子弹数的得分; 
         Bonus:是子弹数的分红得分; 
         Ram Dmg *2是你的撞击得分; 
         Bonus:是你撞击得分分红; 
         最后两项Survival 1sts,是你赢的次数,丌算做分数。 

     
         所有分数加起来就是你的总分。记住在联赛并丌是总分越高越好,它是算综合平
    均分的。其中撞击分和子弹损失分就要越少越好。你如果观察两大高手比赛的记分牌,
    你会发现他们的Ram Dmg 和Ram Dmg中的Bonus一般都为0。 
         

  • 相关阅读:
    面向对象(五)-魔法方法
    面向对象(四)-实例,类,静态方法
    生成随机数
    vue中自己新建的组件怎么使用
    时间戳转时间
    js基础知识(一)--去除重复数据
    vue 实现底部导航栏
    dgl库:dgl._ffi.base.DGLError: [18:13:27] _func_ext.h:117: Check failed: ObjectTypeChecker<TObjectRef>::Check(sptr.get())
    DGL安装
    geopandas包安装
  • 原文地址:https://www.cnblogs.com/KeenLeung/p/2554148.html
Copyright © 2011-2022 走看看