Is your robot suppose to fire?
Jump to navigation
Jump to search
That is the question, since when my robot doesn't fire... Barracuda doesn't ever move, and it gets a 100% over 1000 rounds without fail (that is 60k to 0 score wise).
If I fire head on at power 3 (with very low toTurn fire bias). I get only around 98.6%. Using a specially designed two shot gun, its score hits 91.4% (once to get it moving, second time to put it out of its misery, both power 0.1). This is because the robot sticks around longer and has more energy to lose.
Since this is move of a movement "challenge" then a "how much your gun makes up for your movement" challenge. I am inclined to go with the latter score myself.
//My Two-shot Gun (ZLIB License)
public boolean firedOnce = false;
public boolean mercyShot = false;
public void onScannedRobot(ScannedRobotEvent e) {
if(e.getEnergy() <= 0.0001 && !mercyShot) {
firedOnce = false;
mercyShot = true;
}
double angleToEnemy = e.getBearingRadians() + status.getHeadingRadians();
double toTurn = Utils.normalRelativeAngle(angleToEnemy - status.getGunHeadingRadians());
if(toTurn <= 0.001) {
if(!firedOnce) {
setFire(0.1);
firedOnce = true;
}
}
setTurnGun(toTurn);
}