PartsBot 1.1

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

5 Responses to “PartsBot 1.1”

  1. 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.

    Reply
  2. Java Student

    How, may I ask, can this be piece of code be converted into Degrees?

    Reply
    • If your absBearing is in degrees,

      setTurnGunRightRadians(robocode.util.Utils.normalRelativeAngle(absBearing
      					- getGunHeadingRadians()));

      becomes

      setTurnGunRightRadians(robocode.util.Utils.normalRelativeAngle(Math.toRadians(absBearing)
      					- getGunHeadingRadians()));
      Reply

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>