From Robowiki
Jump to navigation Jump to search
Author(s) Ray Vermette
Extends AdvancedRobot
Targeting Virtual Guns
Movement Anti-Gravity Movement, Virtual Bullet Dodging
Released 2002
Current Version 1.2
Code License Public domain

Background Information

What's special about it?
It was one of the best bots in the very earliest days of Robocode. Back then, it placed in the top 8 in the RoboRumble.
TheArtOfWar is open-source and the code for it can be found in the JAR. You can read more about it at The Art of War Home Page.
How competitive is it?
It is #380 in 1v1 and #54 in Melee in the RoboRumble. It has not been updated since February 2002.


How does it move?
Its movement is almost entirely based on Anti-Gravity Movement. Repulsive points are assigned to enemy robots, predicted paths of enemy bullets, walls, and the battlefield center in a melee battle.
How does it fire?
It has a pretty complex algorithm for targeting and selecting fire power, which in retrospect, could be much simpler. It uses a number of different aiming techniques, and keeps track of hits and misses to help it select the best aiming algorithm for each opponent.
How does it dodge bullets?
When it detects an Energy Drop which might indicate a bullet being fired, it plots three possible bullet paths:
If the anti-gravity forces were assigned to the bullets' current positions, the combined forces would cause TheArtOfWar to move backwards (bad!) instead of dodging left or right (good!), so I assign them to the points where I would expect the bullets to impact TheArtOfWar.
How does the melee strategy differ from one-on-one strategy?
If I remember correctly, the only difference is in melee, it assigns a weak anti-gravity force to the center of the battlefield to encourage it to stay in the corners (where it is safe).

Additional Information

Where did you get the name?
From "The Art Of War" by Sun Tzu, the world's oldest military treatise.
Can I use your code?
Sure. The source code is available in the JAR.
What's next for your robot?
I think I will leave it alone. It serves as a useful milestone for robot development and just goes to show you how far robots have advanced since this robot was written. It used to rank near the top; now it's lucky if it cracks the top 300 in one-on-one. It's still half-decent in melee.
What other robot(s) is it based on?
It is based on two previous robots I wrote: RayBot and a one-on-one robot called, oddly enough, "One".