Download it from http://www.robocoderepository.com/BotDetail.jsp?id=2353
package pez.nano;
import robocode.*;
import robocode.util.Utils;
// This code is released under the RoboWiki Public Code Licence (RWPCL), datailed on:
// http://robowiki.net/?RWPCL
//
// Icarus, by PEZ. - Something small
// http://robowiki.net/?Icarus
// $Id: Icarus.java,v 1.3 2004/08/25 11:34:03 peter Exp $
public class Icarus extends AdvancedRobot {
static int direction = 7;
static int timer;
static double[] reversies = { 0.0, 7.0, 14.0 };
static int hits;
public void run() {
turnRadarRightRadians(Double.POSITIVE_INFINITY);
}
public void onScannedRobot(ScannedRobotEvent e) {
int stopOrGo = 1;
double d = e.getDistance() / 10;
if (timer++ > d) {
stopOrGo = 0;
}
if (timer > d * 1.35) {
timer = 0;
}
if (Math.random() < reversies[hits % 3] / e.getDistance()) {
direction = -direction;
}
setAhead(direction * 20 * stopOrGo);
setTurnRight(e.getBearing() + 90 - direction);
double enemyAbsoluteBearing = getHeadingRadians() + e.getBearingRadians();
setTurnGunRightRadians(Utils.normalRelativeAngle(enemyAbsoluteBearing + e.getVelocity() * Math.sin(e.getHeadingRadians() - enemyAbsoluteBearing) * (Math.random() / (8.0 + getRoundNum())) - getGunHeadingRadians()));
setFire(e.getDistance() < 140 ? 3.0 : 1.9);
setTurnRadarLeftRadians(getRadarTurnRemaining());
}
public void onHitWall(HitWallEvent e) {
direction = -direction;
}
public void onHitByBullet(HitByBulletEvent e) {
hits++;
}
}