Difference between revisions of "Tomcat"

From Robowiki
Jump to navigation Jump to search
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    = 82.53 APS (22nd)
+
| best_rating    = 82.64 APS (20nd)
| rating          = 82.53 APS (22nd)
+
| rating          = 82.64 APS (20nd)
| current_version = 3.27
+
| current_version = 3.31
 
| 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.27.jar
+
| download_link  = http://jdevs-robocode.googlecode.com/files/lxx.Tomcat_3.31.jar
 
| isOneOnOne      = true
 
| isOneOnOne      = true
 
| isMelee        = false
 
| isMelee        = false
Line 34: Line 34:
  
 
==== How competitive is it? ====
 
==== How competitive is it? ====
Fairly well, Tomcat is in [[The2000Club|The 2000 Club]] and in Top 25 now
+
Fairly well, Tomcat is in [[The2000Club|The 2000 Club]] and in Top 20 now
  
 
==== How does it [[:Category:Movement|move]]? ====
 
==== How does it [[:Category:Movement|move]]? ====

Revision as of 17:52, 29 September 2011

Tomcat
Author(s) User:Jdev
Extends AdvancedRobot
Targeting RS-PIF
Movement RS-Wave Surfing
Released August 5th, 2011
Best Rating 82.64 APS (20nd)
Current Rating 82.64 APS (20nd)
Current Version 3.31
Code License CC BY-ND 3.0
Download

Most Recent Updates

Check out the /Version History

What's special about it?

  • As i know it's only one bot, which use range search for data analyse
  • it's the best Russian bot at release moment
  • 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

How competitive is it?

Fairly well, Tomcat is in The 2000 Club and in Top 20 now

How does it move?

Tomcat has two sets of log - visits and hits. Each set - it's all possible subsets of {lateralVelocity, acceleration, distanceBetween and distanceToForwardWall}. 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 3) 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 2 best logs in terms of "hit rate" - "miss rate" for last 3, 11 and 100 bullets and tries to dodge bullets produced by this 6 logs (there're may be only 2 logs if they is the best in all categories)

How does it fire?

Data analysis

Tomcat keeps log of turns organized as linked list with several range search 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?

  • new movement mechanics
  • updating enemy fire angle prediction data for bullets in air, when new data income
  • movement & targeting tweaks
  • incorporate data about safe areas, recieved from waves intersections
  • anti ram stuff, if new movement mechanics isn't help
  • anti mirroring stuff
  • melee strategy
  • teams strategy
  • optimisation
  • try to add movement's logs selection system to gun

Does it have any WhiteWhales?

  • The problem bots is mirror bots, ram bots and Pytko:)
  • DrussGT - main insulter of Tomcat now:)

What other robot(s) is it based on?

Set of my unreleased bots: Jdev, UltraMarine, Primarch;
And User:Rednaxela/FastTrig class and exact Non-Iterative solution for LinearTargeting from wiki