麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Robocode 高手的秘訣:躲避子彈

2019-11-18 13:08:51
字體:
來源:轉載
供稿:網友

  在我向您展示這一技巧之前,您必須了解 Robocode 的一些基礎知識。首先,它攻擊和防守使用的是一個能量倉。這就帶來了有趣的博弈決定:您必須決定何時使用能量向對手開炮,何時保存能量以應付可能的損失。
  
  其次,機器人對于四周環境的了解非常有限。它可以知道其它機器人的距離、方位、方向、速度和能量等級。但是,它看不到子彈,不過也許根據這些線索,您可以猜想如何發現其它機器人正向它開炮。
  
  DodgeBot 靜止不動,不斷的跟蹤對手的前一能量等級。當它的能量下降一定的量時,DodgeBot 就認為它開炮了,并移向左邊或右邊。令人吃驚的是,這將會迷惑大多數機器人的瞄準方法。它們要么直接向目標開炮,要么試著根據您的速度和方向來推算位置。假如您的機器人不移動,兩種算法都會正好沖著這個機器人開炮。而您的機器人猜到了這一點,向旁邊躍出一小步,但子彈仍是沿原來的方向。圖 1 展示了實際的 DodgeBot。
  
  
圖 1. DodgeBot 對 Tracker(上當了?。?/center>
  
Robocode 高手的秘訣:躲避子彈

  
  清單 1 展示了 DodgeBot 的代碼。每當雷達覺察到敵人時執行主代碼部分。DodgeBot 保持自己的直角狀態,另外還有 30 度傾向對手。以 90 度角靜止使機器人避開子彈的能力達到最大。附加的 30 度傾斜使機器人具有一定的攻擊力,并逐漸接近目標。接著是代碼的要害部分:假如機器人覺察到能量下降介于 0.1 和 3.0 之間(火力范圍),那么機器人就立即切換方向,向左或向右移動。很簡單。它會切換炮和雷達掃描的方向,假定假如它在最后一次掃描中看到了一個機器人,那么當它再次掃過同一區域時還會再發現它。這時機器人就會開炮。因為我把炮和雷達聯系在一起,而掃描器是在它面朝對手的那一刻被調用的,所以炮會正對著對手開炮。最后,我會為下一回合記下對手的能量。
  
  清單 1. DodgeBot 的代碼
  import robocode.*;
  
  public class DodgeBot extends AdvancedRobot
  double PReviousEnergy = 100;
  int movementDirection = 1;
  int gunDirection = 1;
  public void run() {
  setTurnGunRight(99999);
  }
  public void onScannedRobot(
  ScannedRobotEvent e) {
  // Stay at right angles to the opponent
  setTurnRight(e.getBearing()+90-
  30*movementDirection);
  
  // If the bot has small energy drop,
  // assume it fired
  double changeInEnergy =
  previousEnergy-e.getEnergy();
  if (changeInEnergy>0 &&
  changeInEnergy<=3) {
  // Dodge!
  movementDirection =
  -movementDirection;
  setAhead((e.getDistance()/4+25)movementDirection);
  }
  // When a bot is spotted,
  // sweep the gun and radar
  gunDirection = -gunDirection;
  setTurnGunRight(99999*gunDirection);
  
  // Fire directly at target
  f i r e ( 2 ) ;
  
  // Track the energy level
  previousEnergy = e.getEnergy();
  }
  }
  
  我在叫做 Wolverine 的機器人上使用了這一技巧,它另外使用了一些感應器信息以使感覺更準確。當對手擊中我的機器人時,對手得重新充能量。當我的機器人擊中對手時,能量等級就會下降。機器人可能同時感受到這兩件事情,所以 Wolverine 利用這一信息來抵消對等的能量波動。
  
  這個技巧還存在問題。子彈一發射,機器人就移動,所以它最終可能會移回炮彈軌跡之內。最好是在估計子彈要到達時再移動。
  
  更嚴重的問題是,即使您能夠迷惑平常的瞄準,但實際上向旁邊一步一步的移動很輕易猜測。使用這一技巧的最佳方式可能是讓信息指導您的移動,而不是讓它控制。
  
  您也許會想,這個技巧這么簡單,您自己原本也是想得到的。不錯。這個游戲就是這樣玩的,這也正是它為什么如此吸引人的緣故。Robocode 就象棋類游戲,每新走一步都會是一個新的想法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久日韩精品一区二区三区 | 久草在线高清视频 | 免费观看一区二区三区视频 | 久久艹综合| 黄色毛片18| 精品一区二区三区免费毛片 | 亚洲一区二区中文字幕在线观看 | 午夜影院在线免费观看 | 欧美在线黄色 | 欧美性色黄大片www 成人免费网站在线观看 | 日日鲁夜夜视频热线播放 | 337p日本欧洲亚洲大胆精蜜臀 | 国产精选电影免费在线观看 | 第一区免费在线观看 | 蜜桃传媒视频麻豆第一区免费观看 | 亚洲成人在线视频网站 | 精品国产一区二区三区久久久蜜月 | 青青草免费观看 | 国产男女爽爽爽爽爽免费视频 | 亚洲日本韩国在线观看 | 成av在线 | 中文字幕在线观看国产 | 毛片电影网址 | 国产成人午夜高潮毛片 | 成人精品久久久 | 九九热九九 | 99re66热这里只有精品8 | 色综合久久久久久久久久 | 久久国产精品久久久久久久久久 | 日本精品久久久久 | 精品中文字幕在线观看 | 久久国产在线观看 | 日韩一级网站 | wwwcom国产 | 在线成人www免费观看视频 | 色婷婷久久一区二区 | 成人国产精品久久 | 中文字幕国产日韩 | 久久久三级免费电影 | 99欧美视频 | 国产精品性夜天天视频 |