Fire power 2.95 bug

Jump to navigation Jump to search
Revision as of 4 December 2015 at 02:17.
The highlighted comment was created in this revision.

Fire power 2.95 bug

I was browsing the wiki and found a couple places where authors mention the fire power 2.95 bug. Can someone tell me what it is? I did my best, but I could not find a description or rationale behind this magic number.

    Beaming (talk)04:13, 3 December 2015

    It is actually an x.x5 power bug. If you look at the history of BasicSurfer/Code, you will see that the old method of comparing bullet powers to filter onHitByBullet to match to the correct wave multiplied both by 10, rounded, then checked for equality. This meant that due to rounding errors, some values of bullets with the pattern x.x5 would not be matched and the bot would not learn from the bullet hit. Since many bots used BasicSurfer as a base, this actually caused a noticable increase in rumble score.

      Skilgannon (talk)10:07, 3 December 2015

      Yeah... IIRC I was doing some extensive default bullet power testing and found that 1.95 drastically outperformed both 1.94 and 1.96 in a large test bed and this turned out to be why. I felt kind of dirty since I was both the person that introduced the bug and the one who figured out how to exploit it. :-/

        Voidious (talk)00:41, 4 December 2015

        Thanks guys. This clears it.

        In retrospect, it is even strange to see the old based on rounding code. Is it a remainder of some attempts of code shrinking?

        Looks like nobody wants to use buil-in robocode.util.utils.isNear :)

          Beaming (talk)04:17, 4 December 2015