One quick tip would be to not start out focusing on Freya... ;) That's a pretty good tank. What I did, and it worked out well, was start at the Beginner and then Intermediate level at the RobocodeRepository, and just download tanks and try to beat them. I'll try and give some more specific advice about your tank when I get a chance... -- Voidious
Well, beating Freya isn't a simple chore. While I can beat an older version of Freya in duels, It is rare that I am lucky enough to win a 100 round melee (with other Loki bots). As far as advice goes, I added some tips here, and you probably need to design a way to support multiple targeting methodologies and decide which of them to use, popularly referred to as a virtual gun array. You may want to set up the Roborumble@home system. In addition to helping process battles, it will download the bots that participate so you don't have to wade through the repository looking for them. If you enter your bot in the competition you will get a rating, and you can try testing against bots that are comperable. Early on it should be easy to improve your rating, and if you watch some battles against your 'problem bots' you'll see what opponents are doing to stop you from hitting them.
I spent a lot of time early on with Ugluk's design, redesigning to be more modular or modeled more clearly, and as a result I have a pretty good (imo) system that I can add new ideas to quickly. Many new features take about 20 minutes to code.
I have a personal policy to not read the Java code of any of my opponents, even the best ones, so I can't give you advice there, but if you show up on Ugluk's problem bot listings (or even the no-problem list) I'll have some congratulations or advice to dispense, for what it's worth. -- Martin
Also, I really wasn't looking to know that I cant beat Freya (I already knew that), I wanted to know what was next for me to work on for my robot? Like, does my random oscillation work right, or is there any improvements on my targeting? (PS Thanks to Martin for the Virtual Guns idea, I am working on that now.) --Bayen
Just some small tips to gain some codesize: You can use Utils.normalRelativeAngle() (embedded in robocode.utils) instead of your own normalRelativeAngle(), calling setAdjustGunForRobotTurn(true) plus setAdjustRadarForGunTurn(true) during startup is enough to uncouple the radar, gun and tank completely for the whole battle, and you could make battleFieldWidth? and -Height general statics which are filled during startup. By the way, I also started robocoding with TrackFire, in my case merged into SpinBot. -- GrubbmGait
I have watched a 35-round meleebattle and a few one-on-one battles, and my prediction for CrazyTracker2? 2.6 is: rating 1550-1570 (ranking 80-100) in melee and 1510-1530 (ranking 270-290) in one-on-one. Your movement is hard to hit by simple targetters (HOT, LT and CT) and at your favourite (close) range your gun is at it best. -- GrubbmGait