Difference between revisions of "Tomcat"
m (update) |
m (update) |
||
Line 11: | Line 11: | ||
| movement = [[RS]]-[[Wave Surfing]] | | movement = [[RS]]-[[Wave Surfing]] | ||
| released = August 5th, 2011 | | released = August 5th, 2011 | ||
− | | best_rating = 86. | + | | best_rating = 86.84 APS (3rd) |
− | | rating = 86. | + | | rating = 86.84 APS (3rd) |
− | | current_version = 3. | + | | current_version = 3.47a |
| license = [http://creativecommons.org/licenses/by-nd/3.0/deed.en CC BY-ND 3.0] | | license = [http://creativecommons.org/licenses/by-nd/3.0/deed.en CC BY-ND 3.0] | ||
− | | download_link = http://jdevs-robocode.googlecode.com/files/lxx.Tomcat_3. | + | | download_link = http://jdevs-robocode.googlecode.com/files/lxx.Tomcat_3.47a.jar |
| isOneOnOne = true | | isOneOnOne = true | ||
| isMelee = false | | isMelee = false | ||
Line 61: | Line 61: | ||
==== What's next for your robot? ==== | ==== What's next for your robot? ==== | ||
− | * | + | * get crown? |
− | + | * anti ram stuff? | |
− | * anti ram stuff | + | * anti mirroring stuff? |
− | * anti mirroring stuff | ||
* melee strategy | * melee strategy | ||
* teams strategy | * teams strategy |
Revision as of 10:40, 23 November 2011
Tomcat | |
Author(s) | User:Jdev |
Extends | AdvancedRobot |
Targeting | kNN-PIF |
Movement | RS-Wave Surfing |
Released | August 5th, 2011 |
Best Rating | 86.84 APS (3rd) |
Current Rating | 86.84 APS (3rd) |
Current Version | 3.47a |
Code License | CC BY-ND 3.0 |
Download |
Contents
- 1 Most Recent Updates
- 2 What's special about it?
- 3 How competitive is it?
- 4 How does it move?
- 5 How does it fire?
- 6 What does it save between rounds and matches?
- 7 Where did you get the name?
- 8 Can I use your code?
- 9 What's next for your robot?
- 10 Does it have any WhiteWhales?
- 11 What other robot(s) is it based on?
Most Recent Updates
Check out the /Version History
What's special about it?
- It's the best Russian bot at now
- It's my first released bot
- It was under development without releases more than 2 years
- It has only one gun
- "g" and "m" keys enables gun and movement debug graphics respectively
- Tomcat use unique buffers management system for movement
How competitive is it?
Very, Tomcat is in The 2100 Club, in APS Top 3 and PL king at 6 of November 2011
How does it move?
Tomcat has two sets of log - visits and hits. Each set - it's all possible subsets of {lateralVelocity, acceleration, distanceBetween, distanceToForwardWall, distLast10Ticks}. For each log Tomcat tracks it's average "hit" and "miss" rates for last 3, 11, 100 bullets/waves. Each log can produce several (now 5) possible bearing offsets.
When enemy bullet hit Tomcat or his bullet, Tomcat calculate "hit" rate for each log - how many predicted bullets contained by interval with robot width and center in real bearing offset.
When enemy bullet missed, Tomcat calculate "miss" rate for each log - how many predicted bullets contained by interval with robot width and center in current bearing offset.
When it's time to predict enemy's bullet bearing offset, Tomcat selects by 4 best logs in terms of "hit rate" - "miss rate" for last 3, 11 and 100 bullets and tries to dodge bullets produced by this 12 logs (there're may be only 4 logs if they are the best in all categories)
How does it fire?
Data analysis
Tomcat keeps log of turns organized as linked list with several kD-trees with different segmentation attributes for search. When it's time to fire, Tomcats find out set of similar situations in past, using every tree.
Fire angle reconstruction
See PIF/Gradient PIF
Multiple choice
When enemy's possible future positions is finded out, Tomcat calulates interval of bearing offsets (BO), which hits enemy for each future position. Then, Tomcat builds histogram of BOs dangers and selects random BO from set of BOs with maximum danger value.
Implementation features
Tomcat's PIF algorithm is position based - it's calculates enemy displacement vector between two turns in past, which is applied to enemy's current state to calculate enemy's future position. This algorthm allows me to avoid accumulating rounding errors
What does it save between rounds and matches?
Between rounds it saves targeting and movement logs and other stuff (enemy prefered disance, enemy targeting profile, hit rates etc.), between matches nothing
Where did you get the name?
From his colors:)
Can I use your code?
Yes, but you can only read code. See CC BY-ND 3.0
What's next for your robot?
- get crown?
- anti ram stuff?
- anti mirroring stuff?
- melee strategy
- teams strategy
Does it have any WhiteWhales?
No, now Tomcat can beat any bot in RR
What other robot(s) is it based on?
Set of my unreleased bots: Jdev, UltraMarine, Primarch;
User:Rednaxela/FastTrig class, User:Rednaxela/kD-Tree class and exact Non-Iterative solution for LinearTargeting from wiki