Talk:Opposite
Any ideas for a targeting scheme with 132 bytes? (including how to select a target) --Starrynte 17:45, 12 September 2009 (UTC)
I'm not sure how much this will help, but this is the enemy selection I tend to use in codesize-restricted melee bots. I used linear targeting in this example:
package oog.nano.aorta;
import robocode.*;
import robocode.util.*;
public class Aorta extends AdvancedRobot {
static double enemyDist;
static String enemyName;
public void run(){
enemyDist=Double.POSITIVE_INFINITY;
setTurnRadarRightRadians(Double.POSITIVE_INFINITY);
}
public void onScannedRobot(ScannedRobotEvent e){
if(e.getDistance()<enemyDist||e.getName()==enemyName){
enemyName=e.getName();
enemyDist=e.getDistance();
//This part greatly increases the accuracy of the targeting, but it isn't necessary.
if(getGunHeat()<1){
setTurnRadarLeftRadians(getRadarTurnRemainingRadians());
}
/*
*You could replace these next two lines with any type of targeting and bullet power you like,
*I just used linear targeting as an example.
*/
setTurnGunRightRadians(Utils.normalRelativeAngle((e.getBearingRadians()+getHeadingRadians())-getGunHeadingRadians())+
(e.getVelocity()*Math.sin(e.getHeadingRadians()-(e.getBearingRadians()+getHeadingRadians())))/14);
setFire(2);
}
}
public void onRobotDeath(RobotDeathEvent e){
enemyDist=Double.POSITIVE_INFINITY;
}
}