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

robocodeサンプル-フィールドの縁を移動

フィールドの縁を移動するロボット

package ka;
import robocode.*;
import java.awt.Color;

public class Kazu00 extends Robot
{
    // ロボットの移動量
    double mm;

    public void run() {
        mm = getBattleFieldWidth() / 10;
        setColors(Color.red,Color.blue,Color.green);
        while(true) {
            ahead(mm);
            turnGunRight(180);
            turnGunLeft(180);
        }
    }
   
    public void onScannedRobot(ScannedRobotEvent e) {
        // フィールドの高さの半分以下の距離の敵のみに発砲
        if(e.getDistance() < getBattleFieldHeight() / 4){
            fire(2);
        }
    }
   
    public void onHitByBullet(HitByBulletEvent e) {
        turnRight(45);
        ahead(mm);
    }
   
    public void onHitWall(HitWallEvent e){
        // 壁に沿って移動
        turnRight(90 + e.getBearing());
        ahead(mm);
    }
   
    public void onHitRobot(HitRobotEvent e){
        // 敵が正面だったらバック、後ろなら前進
        if(e.getBearing() > -90 && e.getBearing() < 90){
            back(mm);
        }else{
            ahead(mm);
        }
    }	
}

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