package jk.nano; import robocode.*; import robocode.util.*; import java.awt.geom.*; import java.awt.*; public class Machete extends AdvancedRobot{ final static int STICK = 144; static double move = STICK; static double lastEnemyEnergy; static int deaths; // double x; // double y; public void run(){ turnRadarRightRadians(Double.POSITIVE_INFINITY); } public void onScannedRobot(ScannedRobotEvent e){ double absbearing; double tempmove; double goAngle = Math.PI/2 + (tempmove = move)/500 + (absbearing = getHeadingRadians() + e.getBearingRadians()); if(deaths > 5){ if(Math.random() < 30.0/e.getDistance()) move = -tempmove; setAhead(tempmove); } if((lastEnemyEnergy - (lastEnemyEnergy = e.getEnergy())) > 0 ) setAhead(tempmove/3.0); while(!new Rectangle2D.Double(18,18,764,564). // contains(x = getX() + tempmove*Math.sin(goAngle-= tempmove*0.0001),y = getY() + tempmove*Math.cos(goAngle))); contains(getX() + tempmove*Math.sin(goAngle-= tempmove*0.0001),getY() + tempmove*Math.cos(goAngle))); setTurnRightRadians(Utils.normalRelativeAngle(goAngle - getHeadingRadians())); setTurnGunRightRadians(Utils.normalRelativeAngle(e.getVelocity()*Math.sin(e.getHeadingRadians() -absbearing)/13*Math.random() + absbearing - getGunHeadingRadians())); setFire(getEnergy()/16); setTurnRadarLeft(getRadarTurnRemaining()); } public void onDeath(DeathEvent e){ deaths++; } // public void onPaint(java.awt.Graphics2D g) { // g.setColor(Color.green); // g.drawOval((int)(x),(int)(y), // 2,2); // } }