Fire power 2.95 bug

Fragment of a discussion from User talk:Beaming
Jump to navigation Jump to search

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