package bayen; import robocode.*; import java.util.*; import java.awt.geom.*; /** * FleetFeet - Squirrel's movement */ public class FleetFeet { AdvancedRobot Squirrel; double dir = 1; ScannedRobotEvent lastScan; double iD = 225; public FleetFeet(AdvancedRobot robot) { Squirrel = robot; } public void onScannedRobot(ScannedRobotEvent e) { if(Squirrel.getTime()<30) lastScan = e; double dif = lastScan.getEnergy() - e.getEnergy(); if(dif<=3 && dif>0){ dir=-dir; if(dif==3) iD=225; else if(dif>=2) iD=300; else if(dif>=1) iD=340; else if(dif>=0) iD=iD; } Squirrel.setTurnRight(normalRelativeAngle( e.getBearing()+90-(e.getDistance()>(iD+100)?45:20)*dir* (e.getDistance()<(iD)?-1:1))); Squirrel.setAhead(100*dir); lastScan = e; } public void onHitWall(HitWallEvent e) { dir=-dir; } public void onHitRobot(HitRobotEvent e) { dir=-dir; } public void onHitByBullet(HitByBulletEvent e) { System.out.println("hit"); } private double normalRelativeAngle(double angle) { angle = Math.toRadians(angle); return Math.toDegrees(Math.atan2( Math.sin(angle), Math.cos(angle))); } }