Difference between revisions of "TheArtOfWar"
Jump to navigation
Jump to search
(Fix broken links and update) |
(Minor reformatting) |
||
Line 1: | Line 1: | ||
{{Infobox Robot | {{Infobox Robot | ||
− | | author = | + | | 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 | ||
+ | | released = 2002 | ||
+ | | license = Public domain | ||
| download_link = http://robocode-archive.strangeautomata.com/robots/tzu.TheArtOfWar_1.2.jar | | download_link = http://robocode-archive.strangeautomata.com/robots/tzu.TheArtOfWar_1.2.jar | ||
| isOpenSource = yes | | isOpenSource = 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]]. | ||
− | + | : 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]. | |
− | : | ||
; How competitive is it? | ; How competitive is it? | ||
− | : It is #380 in [[One on One|1v1]] and #54 in [[Melee]] in the [[RoboRumble]]. It has not been updated since February | + | : 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 | + | : 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? | ||
− | : | + | : 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 | + | : 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, | + | : 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. | + | : 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. | + | : 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? | ||
− | : | + | : 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". |
− | |||
− |
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:
- Head-On Targeting, directly at its current position.
- 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 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".