Patrick Lin and I found out something very interesting today: Partsbot 1.1 is much weaker than Partsbot 1.0.
If you look at VirtualGunExperiment’s results below, you will notice that the percentage of hits for 1.1 are much higher than those for 1.0.
Virtual bullet hit table ------------------------ RB Gun: 0.0% HOT Gun: 8.542141230068337% PT Gun: 20.25813692480359% $PMT Gun: 8.114285714285714% SGFT Gun: 62.88770053475936% VirtualGunExperiment 1.1 vs PartsBot 1.1 Virtual bullet hit table ------------------------ RB Gun: 0.0% HOT Gun: 61.03723404255319% PT Gun: 23.00531914893617% $PMT Gun: 59.24202127659575% SGFT Gun: 78.53598014888338%
Another thing you notice here is that the HOT gun hits very often against 1.1. Therefore, for all you java students, I present to you the AntiPartsBotGun. This is designed to allow you to win against Partsbot 1.1 at least 60% of the time, even with a horrible movement. You may recognize the code.
if (e.getName().contains("PartsBot 1.1")) { // Anti-PartsBot Gun setTurnGunRightRadians(robocode.util.Utils.normalRelativeAngle(absBearing - getGunHeadingRadians())); setFireBullet(1.9); out.println("AntiPartsBotGun"); } else { // Circular Targeting
I have also attached a bot dedicated to only win battles against PartsBot, nothing else. Something has to be seriously wrong for it to win against other bots.
Download it here

So I think a lot of people might need clarification as to what the guns mean.
RB == Really Bad, basically shoots in the opposite direction of the opponent. Purely for t3h lulz
HOT == Head-On Targeting, shoot in the direction of the opponent. What the Sample Bots do
PT == Circular+Linear Targeting
$PMT == Symbolic PatternMatcher
SGFT == Segmented Guess-Factor Targeting
In addition, I believe most people will be working in degrees instead of radians, whereas the anti-partsbot gun that rbt has provided is in radians. This means that if your absBearing variable is in degrees, don’t be surprised if this blows up.
Has RB gun ever hit anything before?
Has RB gun ever hit anything before?
How, may I ask, can this be piece of code be converted into Degrees?
If your absBearing is in degrees,
becomes