package cx.haiku;
import robocode.AdvancedRobot;
import robocode.ScannedRobotEvent;
/**
* @author iiley
* Xaxa a haiku bot with random linear aiming and radar-lock.
*/
public class Xaxa extends AdvancedRobot
{
public void run()
{
while(true){
turnRightRadians(1);
ahead(200);
}
}
public void onScannedRobot(ScannedRobotEvent e)
{
if((getEnergy()>0.11d || e.getEnergy()==0d) && setFireBullet(Math.min(600d/e.getDistance(),Math.min(getEnergy()/5d,Math.min(3d,e.getEnergy()/5d))))==null || true){
setTurnRadarRight(getRadarTurnRemaining()==0?Double.POSITIVE_INFINITY:0-getRadarTurnRemaining());
setTurnGunLeftRadians(Math.asin(Math.sin(getGunHeadingRadians()-(e.getBearingRadians()+getHeadingRadians())-Math.asin(e.getVelocity()*Math.sin(e.getHeadingRadians()-e.getBearingRadians()-getHeadingRadians())/11)*(1+Math.random()*(0.4-Math.abs(e.getVelocity())/10)))));
}
}
}
You should change to a while loop instead of a do-while loop for this to be a haikubot. -- Kawigi
Oh~`Thanx,i did not notice that,i will change it,Thank you very much. -- iiley
Can you tell us what's going on here? Is it a linear aim of some sort? Sorry for messing with the indentation and such, but I had to to stand a chance to read the code. It's the semicolons that count anyway. =) -- PEZ
Now,version 1.1 changed the movement to Trigon 1.1's movement,did better in Melee. -- iiley
The gun is same to Smog's,its (gun turn angle) = (linear gun need turn angle) * (1+Math.random()*(0.4-Math.abs(e.getVelocity())/10)),just added some random on linear based on enemy's velocity. -- iiley
But the random is not use all time,you can see,it random the gun turn,if you go straight for a long time,once Math.random()==0,then next gun need turn angle will be very little,so the next time the random*a little number,the gun followed you.I can hardly to explain it,test it with some bot you will see it muck like a basic linear gun,but only some times with some random shoot. -- iiley