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

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

1対1の対戦(前回の続き)

敵のロボットが砲弾を発射したかを知る手立てはない。onScannedRobot?()メソッドで利用できるScannedRobotEvent?クラスのメソッドは次のとおり。

  • 敵への相対的な方法 getBearing()
  • 敵との距離 getDistance()
  • 敵の向いている方向 getHeading()
  • 敵の速度 getVelocity()
  • 敵のエネルギー getEnergy()

敵の砲撃を知るには敵のエネルギー値の変化を検出するしかない。エネルギーの変化は次の式でわかる。

直前スキャン時のエネルギー値 − 現在のエネルギー値

直前のエネルギー値を知るメソッドはないのでonScannedRobot?()メソッドの終了前にフィールド(変数)に代入しておく。

public class xxxx extends Robot {
  double chokuzen;
  ...
  public void onScannedRobot(ScannedRobotEvent e){
    ...
    chokuzen = 現在のエネルギー値
  }
}

 デバッグ

変数値やメソッドの戻り値がどうなっているかを知りたいときはout.println()メソッドを使う。

out.println(変数);

このメソッドを使うと対戦を表示するウィンドウ右側のボタンをクリックして表示されるウィンドウに値が表示される。