Robo Home | Changes | Preferences | AllPages

Cinnamon, a Robot by Dan

Update 1.1 1/21/04
Tweaked the pattern matcher, added a lot of Try/Catches? to the code. Finally works in Melee. Next comes saving the PM data. Most definitely a SlowBot.

Update 1.0 1/10/04
Finally, I have equiped Cinnamon with a PatterMatcher?. The movement has been tweeked to take into account other enemys that are not being currently scanned. Will most likly be pegged a SlowBot.

Update 0.7 12/31/03
Changed the gun to more of a RandomTargeting setup. The Movements a bit less predictable. For those who want to know, it prints out its Accuracy data.

Update 0.6
Mostly small improvments, should hold up better though.

Update 0.5
Improved Movement alot. For a reason unknown, it will try to do a "Bombing Run" on its target every often, and still dodge on the way to the target.

Some Minor improvements to Gun, though still nowhere near the level of a competive bot.

How does it move?

Cinnamon uses a form of AntiGrav? movement in which it places a GravPoint? on its current target, as well as three random points all over the map.

How does it fire?

It is using a PM partialy based on NanoLauLectriks.

How does it dodge bullets?

If the Enemy's energy drops by 0.1-3 it places two GravPoints? at random locations within 100 units. It work quite well.

How does the melee strategy differ from one-on-one strategy?

The same as one v one, it (trys) keeps pattern data on all targets.

Where did you get the name?

I was chewing Cinnamon gum when it came time to name it. Not like I really have a competive bot on my hands(Maybe yes, Maybe no).

Can I use your code?

What! You want to use my code! I'm so Honored! Most of the code is on the Wiki already, as Hanji's AGravEngine?, GravPoint? and RobocodeUtils?, with mostly only cosmetic changes. It is avalible at http://www.robocoderepository.com/BotDetail.jsp?id=1964 ;

What's next for your robot?

Flatten the movement, and speed up the execution of the code. as well as adding saved data.

What other robot(s) is it based on?

None, though it uses Hanji's Hanji/AGravEngine, Hanji/GravPoint and Hanji/RobocodeUtils classes, and some of the Pattern Matcher is based on NanoLauLectrik.

Comments? Questions?

You're going to have difficulty keeping any form of coherent pattern in melee, your best bet is to sweep 360 arcs so the gap between observation is reasonably close to a constant 7 ticks (ie: see the opponent every 8, occasionally they'll move and it'll take 7 or 9). -- Kuuran

Ya, but I can hope right? :)--Dan

What I meant to say is mostly keep your scan times consistent and don't try any more advanced radar (unless it's DTstyle with consistent scan times, actually that's probably your best bet). Just remember when reconstructing the pattern that your scans don't represent every movement and interpolate or add each movement 8 times. You could also take a look at Tron's implementation for a few ideas in the regard of melee stability. -- Kuuran

This sounds like you have some interesting stuff to add the the Radar section. Please do. It is one of the first wiki pages and could be in need of a rewrite. -- PEZ

The radar is the simplest I could come up with, merely a setRadarTurnRight?(Double.POSITIVE_INFINITY) in run(), and setRadarTurnLeft?(getRadarTurnRemaining?()) in onScanned. The melee radar is the same, I'm currently assumeing that the lock will hold long enough to catch a good movement snippit. The real challenge that I found was adapting NanoLauLectrik's Pattern matcher to melee. I'm still not sure its all that good, being entirely brute force, not finesse. --Dan

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited March 26, 2004 23:50 EST by David Alves (diff)