Сначала напишите метод OnScannedRobot.
Не используйте случайные значения, потому что это неточно.
Радар указывает на одинаковый угол наклона пистолета. Итак, когда радар указывает на робота и сканирует его, робот стреляет.
Метод onScanned () вызывается, когда радар сканирует робота.
public void onScannedRobot(ScannedRobotEvent e){
double distance = e.getDistance(); //get the distance of the scanned robot
if(distance > 800) //this conditions adjust the fire force according the distance of the scanned robot.
fire(5);
else if(distance > 600 && distance <= 800)
fire(4);
else if(distance > 400 && distance <= 600)
fire(3);
else if(distance > 200 && distance <= 400)
fire(2);
else if(distance < 200)
fire(1);
}
Итак, теперь мы пишем метод run ().
Мы пишем только в цикле. Итак, цикл повторяет одни и те же операции каждую секунду.
Чтобы просканировать всю зону, мы поворачиваем пистолет на 360 градусов.
while(true){
ahead(100); //Go ahead 100 pixels
turnGunRight(360); //scan
back(75); //Go back 75 pixels
turnGunRight(360); //scan
//For each second the robot go ahead 25 pixels.
}
Теперь робот будет двигаться вперед со скоростью 25 пикселей в секунду.
Рано или поздно робот достигнет стены карты.
Робот может быть заблокирован, когда достигнет стены.
Мы решим, используя метод onHitWall ().
public void onHitWall(HitWallEvent e){
double bearing = e.getBearing(); //get the bearing of the wall
turnRight(-bearing); //This isn't accurate but release your robot.
ahead(100); //The robot goes away from the wall.
}
Вы хотите создать трус робота: D? Используйте метод onHitByBullet (), чтобы уйти, если энергия мала. Когда робот поражен пулей, этот метод называется.
double energy = getEnergy();
public void onHitByBullet(HitByBulletEvent e){
double bearing = e.getBearing(); //Get the direction which is arrived the bullet.
if(energy < 100){ // if the energy is low, the robot go away from the enemy
turnRight(-bearing); //This isn't accurate but release your robot.
ahead(100); //The robot goes away from the enemy.
}
else
turnRight(360); // scan
}
посетите эту страницу, чтобы посмотреть все API Robocode http://robocode.sourceforge.net/docs/robocode/
: D до свидания, Фрэнк