As regards a perfect score against HawkOnFire, I have been running some tests, and it appears that HowkOnFires shoots at angles quite distant from guess factor 0.
(From a 1000 round battle, GF = -100.0 means I failed to detect the wave when it was fired or couldn't find a match for some other reason.)
148Hit GF = -100.0
207Hit GF = 0.1636332953564261
89Hit GF = -0.11944245243219632
208Hit GF = -0.2328668375113637
75Hit GF = -100.0
84Hit GF = -0.12453026743165671
88Hit GF = -0.13356419636603006
273Hit GF = -100.0
0.1 seems to be a fairly large deviation from 0.0. Any thoughts? Anyone else see this before?
Yes, it's old and known "problem". I did not research it, but i think, that its Hawk's issue
Isn't it because HoT targeting shoots one turn after it calculates the angle?
both bots are perpendicular to each other on the x axis and have a distance of 100 - the calculated angle would be 90deg
bot one moves +8 and bot two -8
if bot one shoots the next turn with 90deg angle it would be 9deg difference to the center he targeted the last tick.
Of course this is the worst case and scales on distance and relative velocities to each other.
As far as I remember HOF doesn't use setAdjustGunForRobotTurn and also just spins its radar, so if you get a bad combo it isn't anywhere near GF0. I've seen as bad as GF+0.3. I'm sure you could improve your score by also dodging the bullet if it was fired at your last 8 locations and adjust the angle based on if they are turning and hadn't adjusted their gun for it yet this tick. Trouble is it will hurt against other bots :-)
HoF has an infinity lock, which slips quite frequently. And it looks like, he shoots whit in the run method and not in onScannedRobot(..) what makes the HoT angle even worse. Not sure about the setAdjustXX(..) but it would make it even more unstable.
As conclusion i would say there is no bot that shoots at GF0 all the time.
But even if you have perfect prediction of your opponents targeting, there is still the occasional ramming score due to bots spawning too close to each other in the beginning of a round, making perfect scores almost impossible against moving opponents.