As of Perpy 13.0, this is no longer true - Perpy now works in melee, but not well. Firstly, he just spins his radar, rather then getting a radar lock. Secondly, he does not use his pattern matcher or GF gun in melee (Until there's only one bot left). Thirdly, he uses a sort of antigravity movement to avoid other bots, instead of his more normal perpendicular movement. Finally, he ignores energy management in melee.
Version 15.0 - More changing of energy management, removed some of the wall bouncing - Perpy used to bounce if his heading was going to change too much - changed the number of lateral velocity segments, made some changes to wavesurfing prediction that seems to have it working better. This may regain some of the points I lost with 12.0 through to 14.0. Hopefully.
Version 14.0 - Changed around some of the energy management when 13.0 sunk massively in the rumble.
Version 13.0 - Added far better melee capabilities, as well as segmented the GF gun on lateral velocity.
Version 12.0 - You didn't see this one, but it added an energy-management system and fixed a few bugs.
Version 11.0 - Perpy now saves some data between rounds (Using a static variable) and uses "goto style" wavesurfing - its movement is now significantly improved. Its also a lot slower now, so I'll have to look into speeding it up a bit.
Looks like you broke something in v9.0, it dropped more than 200 points. -- GrubbmGait
Yeah, I noticed that. 10.0 fixs it - I changed the way the wavesurfing worked so that it only considered a few bins either side, rather then all of them. That made it very prone to getting stuck in local minimums and getting hammered by HOT. I'v definitely got to improve the movement - it's the big problem with it right now, I believe. --Jp
You're still not really surfing. Your score against rz.HawkOnFire will be above 99% when you get the bugs out. I'd recommend taking a look at it using graphical debugging. You can see David Alves/Free Code for some helpful code to draw onto the screen with. I'd also be happy to take a look at the code if you want to publish the source. Good luck! --David Alves
Yeah, I would definitely agree with David on this one. That's not to say you don't have the idea right, but you certainly have some things to work out before you uncover the true power in WaveSurfing. I actually did look at your source a little to try and find a problem, but nothing jumped out at me yet. (@David: The source is in the .jar, by the way.) -- Voidious
Oy... this code is gonna take a while to read. I'd strongly suggest you break your code up into multiple source files. I'll take a look at it tomorrow. --David Alves
Another quick bit of advice: make absolutely sure that your movement predictions are absolutely accurate. If they aren't nothing else will work correctly. --wcsv
I have been doing some graphical debugging, and the waves look right. It looks like I'm putting hits into the right wavesurfing bin, but there are some problems with my prediction code, I believe. It works fine when not near walls, but it doesn't seem to handle wallsmoothing properly sometimes, and I'm not overly sure why. That is, my predicted path with wallsmoothing isn't the same as my actual path with wallsmoothing.
Yeah, the source code is fairly ugly - a word of warning, those comments aren't neccessarily correct. Some of them are a little out of date. Breaking it up into multiple blocks may be a good idea, David.
Probably my problems with prediction are the cause of my wavesurfing troubles, so I'll continue trying to debug it. --Jp
I've got midterms this week so I don't have time to look over your code right now, but I had a similar problem with PowerHouse for a while. It turned out that I was calculating my max turn rate in degrees rather than radians. The first thing i'd check is that you didn't make a similar mistake in your prediction somewhere. --wcsv
Back when I started I was getting absolutely dominated by one of wcsv's other, earlier bots, Stampede2. Though I eventually beat Freya 0.31 in one on one, I've still never consistently beaten it in melee. Usually close, but just out of reach. -- Martin
The bot isn't available for download. -- Martin
That's weird... I definitely uploaded it. Trying to download it from the webpage doesn't give me an error, but I don't seem to get a file, either... Maybe it's something weird with the repository. I'll see if I can get that fixed, but I don't have direct access to the machine that it's stored on right now. I should be able to SSH into it if I can remember the damned hostname, though. :P --Jp
It seems to work for me, now that I've had a closer look. Maybe the Repository had a bit of a blip a while ago? --Jp
Just a note - the CS class that originally used Robocode to get us doing AI stuff recently ran a tournament with the bots we wrote for the practical... and Perpy won! Both the one-on-one section and melee. Really, though, nobody else was as obsessed with Robocode as I was. The only other two 'decentish' bots included a rambot, and a linear-targeting bot with perpendicular movement.
Nevertheless, I got a significant quantity of chocolate out of it, so all's well that ends well. :)
Also, I seem to have fixed the bug with prediction in my latest version of Perpy, but his movement isn't much better - in fact, it's worse against simple targeters then 11.0, which seems to have been the high point so far. Clearly, I've got some more problems with my wavesurfing. I'll have to graph out where I'm putting hits and what the danger of various bins are. --Jp