知识大全 躲避子弹

Posted 机器人

篇首语:不怕读得少,只怕记不牢。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 躲避子弹相关的知识,希望对你有一定的参考价值。

Robocode 高手的秘诀:躲避子弹  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在我向您展示这一技巧之前 您必须了解 Robocode 的一些基础知识 首先 它攻击和防守使用的是一个能量仓 这就带来了有趣的博弈决定 您必须决定何时使用能量向对手开炮 何时保存能量以应付可能的损失     其次 机器人对于周围环境的了解非常有限 它可以知道其它机器人的距离 方位 方向 速度和能量等级 但是 它看不到子弹 不过也许根据这些线索 您可以猜想如何发现其它机器人正向它开炮     DodgeBot 静止不动 不断的跟踪对手的前一能量等级 当它的能量下降一定的量时 DodgeBot 就认为它开炮了 并移向左边或右边 令人吃惊的是 这将会迷惑大多数机器人的瞄准方法 它们要么直接向目标开炮 要么试着根据您的速度和方向来推算位置 如果您的机器人不移动 两种算法都会正好冲著这个机器人开炮 而您的机器人猜到了这一点 向旁边跃出一小步 但子弹仍是沿原来的方向 图 展示了实际的 DodgeBot      >   >    清单 展示了 DodgeBot 的代码 每当雷达觉察到敌人时执行主代码部分 DodgeBot 保持自己的直角状态 另外还有 度倾向对手 以 度角静止使机器人避开子弹的能力达到最大 附加的 度倾斜使机器人具有一定的攻击力 并逐渐接近目标 接着是代码的关键部分 如果机器人觉察到能量下降介于 和 之间(火力范围) 那么机器人就立即切换方向 向左或向右移动 很简单 它会切换炮和雷达扫描的方向 假定如果它在最后一次扫描中看到了一个机器人 那么当它再次扫过同一区域时还会再发现它 这时机器人就会开炮 因为我把炮和雷达联系在一起 而扫描器是在它面朝对手的那一刻被调用的 所以炮会正对着对手开炮 最后 我会为下一回合记下对手的能量     清单 DodgeBot 的代码  import robocode *;    public class DodgeBot extends AdvancedRobot  double previousEnergy = ;  int movementDirection = ;  int gunDirection = ;  public void run()   setTurnGunRight( );    public void onScannedRobot(  ScannedRobotEvent e)   // Stay at right angles to the opponent  setTurnRight(e getBearing()+    *movementDirection);    // If the bot has small energy drop   // assume it fired  double changeInEnergy =  previousEnergy e getEnergy();  if (changeInEnergy> &&  changeInEnergy<= )   // Dodge!  movementDirection =   movementDirection;  setAhead((e getDistance()/ + )movementDirection);    // When a bot is spotted   // sweep the gun and radar  gunDirection = gunDirection;  setTurnGunRight( *gunDirection);    // Fire directly at target  f i r e ( ) ;    // Track the energy level  previousEnergy = e getEnergy();        我在叫做 Wolverine 的机器人上使用了这一技巧 它另外使用了一些感应器信息以使感觉更准确 当对手击中我的机器人时 对手得重新充能量 当我的机器人击中对手时 能量等级就会下降 机器人可能同时感受到这两件事情 所以 Wolverine 利用这一信息来抵消对等的能量波动     这个技巧还存在问题 子弹一发射 机器人就移动 所以它最终可能会移回炮弹轨迹之内 最好是在估计子弹要到达时再移动     更严重的问题是 即使您能够迷惑平常的瞄准 但实际上向旁边一步一步的移动很容易预测 使用这一技巧的最佳方式可能是让信息指导您的移动 而不是让它控制     您也许会想 这个技巧这么简单 您自己原本也是想得到的 不错 这个游戏就是这样玩的 这也正是它为什么如此吸引人的缘故 Robocode 就象棋类游戏 每新走一步都会是一个新的想法 cha138/Article/program/Java/JSP/201311/19413

相关参考

现代兵器知识 威力巨大的原子弹

  1945年8月6日,美国在日本广岛上空投下了一枚小小的原子弹,使这个20多万人的城市转眼之间变成了废墟。三天以后,日本长崎也被美国的原子弹摧毁。据有关资料记载,广岛24.5万人

现代兵器知识 中子弹

   利用高能中子辐射为主要杀伤因素,攻击敌方目标的低当量氢弹。它通过氘氚聚变反应来增强高能中子辐射。其所产生的中子辐射剂量,比同等威力的原子弹约高20倍。高能中子具有很

知识大全 打靶时靶子到射击者的距离是340米,子弹离开枪口经过1.5s射击者听到子弹击中靶的声音求子弹离枪时的速度。

打靶时靶子到射击者的距离是340米,子弹离开枪口经过1.5s射击者听到子弹击中靶的声音求子弹离枪时的速度。子弹的速度是:340除以1.5=226.667米/秒打靶时,靶与射击者相距340米,开枪1.5

现代兵器知识 原子弹

  利用铀?235或钚?239等重原子核裂变反应,瞬时爆炸所形成的多种毁伤效应攻击敌方目标的核武器。又称裂变弹。按其运载和投射工具,分为核导弹、核航空炸弹、核地雷、核水雷、核鱼雷和

世界上第一颗原子弹爆炸成功的时间是

世界上第一颗原子弹爆炸成功的时间是_____。A、1943年B、1945年C、1949年D、1964年答案:B解析:1945年7月16日早晨5时30分,世界上第一颗原子弹在美国新墨西哥州阿拉莫戈多空军

知识大全 史上第一个发明原子弹的人是谁

史上第一个发明原子弹的人是谁爱因斯坦发表了E=MC2这个质能公式。德国一个科学家又根据这个公式,发表了一个关于核裂变会产生巨大能量的文章。国际这时候就紧张了,怕德国会造出原子弹。为了抢在德国之前造出原

第一个研究成功原子弹的国家是

第一个研究成功原子弹的国家是_____。A、美国B、苏联C、英国D、中国答案:A解析:1945年7月16日上午5时24分,美国在新墨西哥州沙漠中阿拉莫戈多的“三一”试验场内进行了人类有史以来的第一次核

知识大全 中国原子弹是谁提出要研究方案

中国原子弹是谁提出要研究方案1954年秋,我国最初发现有铀矿。1955年1月15日,毛泽东在中南海主持召开中共中央书记处扩大会议,听取李四光、刘杰、钱三强的汇报。汇报人把铀矿石标本和探测放射性的盖革计

现代兵器知识 比原子弹威力还大的氢弹

   1952年10月31日,美国在太平洋伊留劫拉布小岛上,爆炸了一颗试验性氢弹,威力相当于1040万吨炸药。1961年10月30日,前苏联在新地岛上4000米的高空爆炸

知识大全 朝鲜如果有原子弹会对中国有威胁吗

朝鲜如果有原子弹会对中国有威胁吗?朝鲜有核武器其后续影响将是中国不可控的。即给韩国、日本研发核武器以及美国在朝鲜半岛布置核武器提供了借口,而这种状况一但出现,对于中国所主导“朝鲜半岛无核化”来说不是一