版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/twentyonepilots/article/details/80919175
package hit;
import robocode.HitRobotEvent;
import robocode.Robot;
import robocode.ScannedRobotEvent;
import java.awt.*;
public class HIT1172800111 extends Robot {
boolean flag;
double num;
public void run() {
setBodyColor(Color.blue);
//设置坦克颜色
setGunColor(Color.green);
//设置炮塔颜色
setRadarColor(Color.pink);
//设置雷达颜色
setScanColor(Color.red);
//设置扫描区域颜色
setBulletColor(Color.white);
//设置子弹颜色
flag = false;
//初始化flag
num = Math.max(getBattleFieldWidth(), getBattleFieldHeight());
//初始化可一直移动的最大值
turnLeft(getHeading() % 90);
//调整角度,使坦克运动与墙平行
ahead(num-1);
//前进直到墙,但不要撞到墙
flag= true;
//标志坦克到达接近墙的位置
turnGunRight(90);
//炮塔旋转
turnRight(90);
//坦克旋转
while (true) { //循环
flag = true;
ahead(num-1);
//前进直到墙,但不要撞到墙
flag = false;
turnRight(90);
//到达墙之后旋转
}
}
public void onHitRobot(HitRobotEvent e) { //防撞坦克
if (e.getBearing() > -90 && e.getBearing() < 90) {
back(100);
//防御性后退
}
else {
ahead(100);
//防御性前进
}
}
public void onScannedRobot(ScannedRobotEvent e) {
fire(2);
//雷达识别成功后开火
if (flag) {
scan();
//行进时扫描
}
}
}