Difference between revisions of "TheArtOfWar"

From Robowiki
Jump to navigation Jump to search
(migrating from old wiki)
 
m
Line 25: Line 25:
  
 
; How does it fire?
 
; How does it fire?
: TheArtOfWar has a pretty complex algorithm for [[Targeting]] and [[Selecting Fire Power|selecting fire power]], which in retrospect, could be much simplier.  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.
+
: TheArtOfWar has a pretty complex algorithm for [[Targeting]] and [[Selecting Fire Power|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 [[Dodging Bullets|dodge bullets]]?
 
; How does it [[Dodging Bullets|dodge bullets]]?

Revision as of 03:59, 26 April 2010

TheArtOfWar
Author(s) Ray Vermette
Extends AdvancedRobot
Targeting Virtual Guns
Movement Anti-Gravity Movement
Current Version 1.2
Download

Background Information

What's special about it?
It was one of the very best bots in the very earliest days of Robocode. It placed in the top 8 in the Robocode Rumble.
How competitive is it?
It is around #250 in 1v1 and #30 in Melee in the RoboRumble. It has not been updated since February, 2002.

Strategy

How does it move?
Its movement is based almost entirely on AntiGravity. AntiGravity points are assigned to enemy robots, the predicted paths of enemy bullets, walls, and the battlefield center in a melee battle.
How does it fire?
TheArtOfWar 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 TheArtOfWar detects a drop in the opponent's energy which might indicate a bullet being fired, it plots three possible bullet paths: one fired using linear aiming (i.e.: straight at TheArtOfWar's current position), one fired based on TheArtOfWar's average speed, and one using an iterative aiming technique. If AntiGravity 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 AntiGravity forces to the points where I 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, TheArtOfWar assigns a weak AntiGravity 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 on the Robocode Repository.
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 TheArtOfWar was written. It used to rank near the top; now it's lucky if it cracks the top 35 in one-on-one. It's still half-decent in melee.
What other robot(s) is it based on?
TheArtOfWar is based on two previous robots I wrote: RayBot and a one-on-one robot called, oddly enough, "One".
TheArtOfWar is open source and the code for it can be found on the Robocode Repository . You can read more about it at The Art of War Home Page.