トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

オブジェクト指向プログラミング(H16)2004/10/12

第2回

どんなロボットが強い、勝ち残れるロボットか考え、各自のロボットプログラミングに反映する。

  • 効果的な攻撃は?
  • 効果的な防御は?
  • 効果的な移動は?
  • エネルギー消費を少なくするには?

 イベント優先順位

  1. 敵に砲弾が当たらない (onBulletMissed?)
  2. 砲弾同士が衝突    (onBulletHitBullet?)
  3. 敵に砲弾が命中    (onBulletHit?)
  4. 敵の砲弾が当る    (onHitByBullet?)
  5. 壁に衝突       (onHitWall?)
  6. 敵と衝突       (onHitRobot?)
  7. 敵を発見       (onScannedRobot?)

この優先順位で処理が実施されるのでイベント処理中にそれよりも低い優先度の処理は実施されない。たとえば、壁に衝突したときに敵と衝突しても敵と衝突したときの処理は無視される。

 敵までの距離が200以下のときは強さ3で、それ以外では0.1で砲弾を発射する。

public void onScannedRobot(ScannedRobotEvent e) {
  if(e.getDistance() <= 200){
    fire(3);
  } else {
    fire(0.1);
  }
}

[オブジェクト指向プログラミング(H16)]