Kuuran wrote: PEZ, I've modified Dummy's NanoCircularLinearPredictor? a bit, run the following code against Tityus (0.3 - PEZ's remark) and watch the debug window:
public class Circular_Linear_Vulnerability_Tester extends AdvancedRobot
{
static double lastEnemyHeading;
static double radarturn=1;
int hits = 0, fires = 0;
static int pershits = 0, persfires = 0;
public void run()
{
do
{
if(getDistanceRemaining() == 0)
setAhead(Math.random() * 400 - 200);
setTurnRadarRightRadians(radarturn);
if(fireBullet(1) != null)
{
fires++;
persfires++;
}
}while(true);
}
public void onScannedRobot(ScannedRobotEvent e)
{
radarturn=-radarturn;
double w=e.getHeadingRadians()-lastEnemyHeading;
lastEnemyHeading=e.getHeadingRadians();
double absbearing=e.getBearingRadians()+getHeadingRadians();
double eX=e.getDistance()*Math.sin(absbearing);
double eY=e.getDistance()*Math.cos(absbearing);
double db=0;
double ww=lastEnemyHeading;
do
{
db+=17;
double dx=e.getVelocity()*Math.sin(ww);
double dy=e.getVelocity()*Math.cos(ww);
ww+=w;
eX+=dx;
eY+=dy;
}while (db< Point2D.distance(0,0,eX,eY));
setTurnGunRightRadians(Math.asin(Math.sin(Math.atan2(eX, eY) - getGunHeadingRadians())));
setTurnRightRadians(e.getBearingRadians() + .5*Math.PI);
}
public void onBulletHit(BulletHitEvent e)
{
hits++;
pershits++;
}
public void onDeath(DeathEvent e)
{
System.out.print("Round Hit rate: ");
System.out.print((double)hits/(double)fires * 100);
System.out.println("%");
System.out.print("Overall Hit rate: ");
System.out.print((double)pershits/(double)persfires * 100);
System.out.println("%");
}
public void onWin(WinEvent e)
{
System.out.print("Round Hit rate: ");
System.out.print((double)hits/(double)fires * 100);
System.out.println("%");
System.out.print("Overall Hit rate: ");
System.out.print((double)pershits/(double)persfires * 100);
System.out.println("%");
}
}
So what this means is that Tityus is vulnerable to full linear aim? I have sort of figured that out already. But it's good to have a test bot that I can use to make sure the next version isn't. Thanks! -- PEZ
Be wary that as posted it uses low power bullets (fire(1)) so don't expect 8% or less hitrates - it's a very simple modification to change that, though. DT 1.91 in challenge mode gets about 11.6% hitrate against from this gun, and that results in no wins for the linear tester. -- Kuuran