第 4 回: Robocode インストール, 起動, 戦闘画面, My First Robot, コンパイラスクリプト, 主なロボットの method

インストール

Download Robocode

Robocode Wiki

Robocode 起動

$ cd robocode
$ ./robocode.sh

戦闘画面

_images/man.png

My First Robot

Man.java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package self;
import robocode.*;
  
public class Man extends Robot {
    public void run() {
	while (true) {
	    ahead(100);
	    turnGunRight(360);
	    back(100);
	    turnGunRight(360);
	}
    }
  
    public void onScannedRobot(ScannedRobotEvent e) {
	fire(1);
    }
}

コンパイラスクリプト

compile.sh

#!/bin/sh

cd /Users/wtopia/robocode/

javac -deprecation -g -source 1.5 -classpath /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/classes.jar:libs/robocode.jar:/Users/wtopia/robocode/robots /Users/wtopia/robocode/robots/self/$1

cd /Users/wtopia/robocode/robots/self/

主なロボットの method

ロボットの色:

setColors(ボディの色, 砲塔の色, レーダーお色);
setColors(Color.red, Color.blue, Color.green);

選べる色:

black, darkGray, lightGray, gray, green, cyan, blue, magenda, red, orange, pink, white, yellow

ロボットの動作:

前進: ahead (距離)
後退: back (距離)
右回転: turnRight (角度)
左回転: turnLeft (角度)
砲塔右回転: turnGunRight(角度)
砲塔左回転: turnGunLeft(角度)
レーダー右回転: turnRaderRight(角度)
レーダー左回転: turnRaderLeft(角度)

ロボットの情報収集:

進行方向 (絶対角度):: getHeading()
スピード: getVelocity()
X 座標: getX()
Y 座標: getY()
砲塔方向 (絶対角度): getGunHeading()
エネルギー: getEnergy()
名前: getName()
幅: getWidth()
高さ: getHeight()

バトルフィールドの情報:

幅: getBattleFieldWidth()
高さ: getBattleFieldHeight()

さまざまなイベント:

敵を発見した場合: onScannedRobot() ScannedRobotEvent e (引数)
敵の攻撃を受けた場合: onHitBybullet() HitByBulletEvent e (引数)
壁に衝突した場合: OnHitWall() HitWallEvent e (引数)
他のロボットと衝突した場合: onHitRobot() HitRobotEvent e
ロボットが勝ち残った場合: onWin() WinEvent e (引数)