Version 1.0 is an anti-Cigaret optimised version, it scores over 90% against it in the TC. I didn't run a full TC2k6 yet, but my guess is it will score around 85%.
In Version 1.01 I changed the number of samples and added a very simple wavesurfer detection code (if hitrate < 12%). It is even better at hitting Cigaret, and scores better against wavesurfers (CC) too. 84.96% in the TC2K6.
v1.0 : http://robocode.aclsi.pt/abc.wiki.DCBot_1.0.jar v1.01: http://robocode.aclsi.pt/abc.wiki.DCBot_1.01.jar
-- ABC
By the way, is this released under RWPCL? Seems like a pretty major source code release, so I thought you might want to specify that. -- Voidious
No license needed, use it and abuse it. :) -- ABC
Thanks for sharing, maybe I will find some ideas to speed up my gun. -- Florent
I found one! I will use your sqr
function instead of Math.pow
, it seems to realy speed up my gun, thanks again. -- Florent
You should look closely at the code inside the log traversal loop, that code is being executed 30000+ times (in my case) per firing tick, after the log is full. The top N scans selection method is also important speedwise, I remember trying 2 or 3 different approaches before settling with one I use now. Another speed optimisation change I remember doing is the enemy path retrace, instead of tracing it step by step I use an iterative method. -- ABC
I looked at your enemy path retrace method,I am not using an iterative method like you but I am tracing it step by step. This way I can check if all the movement is inside the battle field, not only the end point, but I am not sure if this loss in speed is worth the performance (in terms of rating). -- Florent
Yep, that's a disadvantage of my current method. I don't know it's impact in terms of rating either, I was looking for ways to reduce testing times when I switched to it, but it must not be a big loss or I wouldn't have kept it. Maybe I'll do some tests... -- ABC