Difference between revisions of "TheArtOfWar"

From Robowiki
Jump to navigation Jump to search
(migrating from old wiki)
 
(Minor reformatting)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Infobox Robot
 
{{Infobox Robot
| author          = [[User:Ray Vermette|Ray Vermette]]
+
| author          = Ray Vermette
 
| extends        = [[AdvancedRobot]]
 
| extends        = [[AdvancedRobot]]
 
| targeting      = [[Virtual Guns]]
 
| targeting      = [[Virtual Guns]]
| movement        = [[Anti-Gravity Movement]]
+
| movement        = [[Anti-Gravity Movement]], Virtual Bullet Dodging
 
| current_version = 1.2
 
| current_version = 1.2
| download_link  = http://darkcanuck.net/rumble/robots/tzu.TheArtOfWar_1.2.jar
+
| released        = 2002
 +
| license        = Public domain
 +
| download_link  = http://robocode-archive.strangeautomata.com/robots/tzu.TheArtOfWar_1.2.jar
 
| isOpenSource    = yes
 
| isOpenSource    = yes
 
| isOneOnOne      = yes
 
| isOneOnOne      = yes
Line 12: Line 14:
  
 
== Background Information ==
 
== 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]].
  
; What's special about it?
+
: TheArtOfWar is open-source and the code for it can be found in the JAR. You can read more about it at [https://web.archive.org/web/20040211130751/http://members.rogers.com/theartofwar/ The Art of War Home Page].
: 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?
 
; How competitive is it?
: It is around #250 in [[One on One|1v1]] and #30 in [[Melee]] in the [[RoboRumble]]. It has not been updated since February, 2002.
+
: It is #380 in [[One on One|1v1]] and #54 in [[Melee]] in the [[RoboRumble]]. It has not been updated since February 2002.
  
 
== Strategy ==
 
== Strategy ==
 
 
; How does it [[Movement|move]]?
 
; How does it [[Movement|move]]?
: Its movement is based almost entirely on [[Anti-Gravity Movement|AntiGravity]]. AntiGravity points are assigned to enemy robots, the predicted paths of enemy bullets, walls, and the battlefield center in a melee battle.
+
: 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?
 
; 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.
+
: It has a pretty complex algorithm for [[targeting]] and [[Selecting Fire Power|selecting fire power]], which in retrospect, could be much simpler.  It [[Virtual Guns|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]]?
: When TheArtOfWar detects a [[Energy Drop|drop in the opponent's energy]] which might indicate a bullet being fired, it plots three possible bullet paths: one fired using [[Linear Targeting|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.
+
: When it detects an [[Energy Drop]] which might indicate a bullet being fired, it plots three possible bullet paths:
 +
:* [[Head-On Targeting]], directly at its current position.
 +
:* [[Mean Targeting|Mean]] [[Linear Targeting]], based on its average speed.
 +
:* [[Circular Targeting]], based on an iterative targeting algorithm.
 +
: 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|melee]] strategy differ from [[One on One|one-on-one]] strategy?
 
; How does the [[Melee|melee]] strategy differ from [[One on One|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!).
+
: 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 ==
 
== Additional Information ==
 
 
; Where did you get the name?
 
; Where did you get the name?
 
: From "The Art Of War" by Sun Tzu, the world's oldest military treatise.
 
: From "The Art Of War" by Sun Tzu, the world's oldest military treatise.
  
 
; Can I use your code?
 
; Can I use your code?
: Sure. The source code is available on the [[Robocode Repository]].
+
: Sure. The source code is available in the JAR.
  
 
; What's next for your robot?
 
; 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|one-on-one]]. It's still half-decent in [[melee]].
+
: 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|one-on-one]]. It's still half-decent in [[melee]].
  
 
; What other robot(s) is it based on?
 
; What other robot(s) is it based on?
: TheArtOfWar is based on two previous robots I wrote: [http://www.geocities.com/evilsimon/RayBot/RayBot_Description.html RayBot] and a one-on-one robot called, oddly enough, "One"
+
: It is based on two previous robots I wrote: [https://web.archive.org/web/20091027162353/http://www.geocities.com/evilsimon/RayBot/RayBot_Description.html 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 [http://web.archive.org/web/20040211130751/http://members.rogers.com/theartofwar/ The Art of War Home Page].
 

Latest revision as of 19:54, 6 September 2017

TheArtOfWar
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
Download

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.

Strategy

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".