For the curious.
The highlighted comment was created in this revision.
In case you are curious (which I highly doubt, but anything is possible). It's flattener was locked into the on position from the start of battle, and detecting bullet collisions was broken (from onHitByBullet anyway, onBulletHitBullet worked 'sometimes'). Which basically meant it was just a random mover most of the time. I corrected both, I locked its flatter to the off position till the second match, and added some basic logic to start it if needed (which had been missing).
I have a 2.4.0 which was the version I hacked on to determine the errors. I has a lot more changes. Including a better distance danger check. But I want to see how this minimally modified version does.
Looks like it jumped about 33 ranks to around 24ish. The fix wasn't exactly complicated either once all is said and done (finding them was something of a pain though).
Considering it was pretty much just a flattener, I'm not surprised it scored about the same as SandboxDT =) I mean seriously, check out the comparison: http://darkcanuck.net/rumble/RatingsCompare?game=roborumble&name=cs.s2.Seraphim%202.3.0&vs=pe.SandboxDT%203.02 Same APS, same PL, just slightly different problem bots.
I thought SandboxDT 3+ was an actual surfer. But your right they are very similar in performance.
I am just glad I finally dug Seraphim out of the rank 50 rut it was in. I only changed about 14 lines of code. The big bugs were only about 3 lines worth, but I wanted to keep the flattener, and fix a minor bug I noticed.
I think SandboxDT was a little bit of surfing with a lot of flattening. But it's strange how such tiny bugs make such a huge difference. I left Neuromancer on the shelf for a long time because for some reason the movement just wasn't working correctly, until I discovered a nested iterator was calling the parent's iterator .next() method instead of its own. Amazing what a difference that made :-p
SandboxDT has a kind of adaptive Random Movement, where it merely adjusts the probability of reversing direction.
Yeah its nuts. The big bugs were, an off by one error, an off by one error (in the other direction), and the wrong Boolean value. I mean honestly.
The complexity of the bots amplify the effect of "minor" bugs. If I flip the sign when calculating danger in Wave Surfing, which is adding only 1 character "-", and do the same when calculating density in the targeting, the bots score and ranking will drop all the way to near last place.