Difference between revisions of "Tomcat"

From Robowiki
Jump to navigation Jump to search
m (club-2000 note)
m (some updates, some more details, some fixes)
Line 11: Line 11:
 
| movement        = [[RS]]-[[Wave Surfing]]
 
| movement        = [[RS]]-[[Wave Surfing]]
 
| released        = August 5th, 2011
 
| released        = August 5th, 2011
| best_rating    = 2001.5 (45th)
+
| best_rating    = 80.46 APS (40th)
| rating          = 2001.5 (45th)  
+
| rating          = 80.46 APS (40th)
| current_version = 3.13.152
+
| current_version = 3.15.154
 
| license        = closed
 
| license        = closed
| download_link  = http://www.robocoderepository.com/BotFiles/4078/lxx.Tomcat_3.13.152.jar
+
| download_link  = http://www.robocoderepository.com/BotFiles/4078/lxx.Tomcat_3.15.154.jar
 
| isOneOnOne      = true
 
| isOneOnOne      = true
 
| isMelee        = false
 
| isMelee        = false
Line 35: Line 35:
 
Fairly well, Tomcat is in [[The2000Club|The 2000 Club]] now
 
Fairly well, Tomcat is in [[The2000Club|The 2000 Club]] now
  
==== How does it [[Dodging Bullets|dodge bullets]]? ====
+
==== How does it [[:Category:Movement|move]]? ====
Tomcat keeps hit and visits logs of enemy's previous guess factors segmented by lateral speed
+
Tomcat keeps sets of hits and visits logs of enemy's previous guess factors with all possible combinations of [lateral speed, acceleration, distance between, distance to forwrad wall]. When enemy's bullet hits or intercepted, Tomcat calculates accuracy of each log and when it's time to predict enemy fire angle it uses few best hits logs always and few best visit logs, when enemy hit rate is greater than 8%
 +
 
 +
==== How does it [[:Category:Targeting|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 =====
 +
When start positions is finded out, it's play forward enemy's movement starting from each start position, until it is not intercepted by my future bullet.
 +
===== Multiple choice =====
 +
When enemy's possible future positions is finded out, Tomcat calulates interval of [[Bearing_Offset|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|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? ====
 
====  What does it save between rounds and matches? ====
Between rounds it saves targeting and movement logs and other stuff, between matches nothing
+
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? ====
 
==== Where did you get the name? ====
Because his colors:)
+
From his colors:)
  
 
==== Can I use your code? ====
 
==== Can I use your code? ====
Line 48: Line 58:
  
 
==== What's next for your robot? ====
 
==== What's next for your robot? ====
Anti-Anti Surfer movement:)
+
* 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
  
 
==== Does it have any [[WhiteWhale]]s? ====
 
==== Does it have any [[WhiteWhale]]s? ====
Looks like any bot, which have anti surfer gun is Tomcat's [[WhiteWhale]]
+
* The problem bots is mirror bots, ram bot and [[Pytko]]:)
 +
* [[DrussGT]], [[Diamond]], [[Shadow]] and [[Engineer]] - main insulters of Tomcat:)
  
 
==== What other robot(s) is it based on? ====
 
==== What other robot(s) is it based on? ====
Set of my unreleased bots: Jdev, UltraMarine, Primarch; [[User:Rednaxela/FastTrig]] class and exact Non-Iterative solution for [[LinearTargeting]] from wiki
+
Set of my unreleased bots: Jdev, UltraMarine, Primarch; <br>And [[User:Rednaxela/FastTrig]] class and exact Non-Iterative solution for [[LinearTargeting]] from wiki
  
 
[[Category:Bots|Tomcat]]
 
[[Category:Bots|Tomcat]]
 
[[Category:1-vs-1 Bots|Tomcat]]
 
[[Category:1-vs-1 Bots|Tomcat]]
 
[[Category:MegaBots|Tomcat]]
 
[[Category:MegaBots|Tomcat]]

Revision as of 06:33, 10 August 2011

Tomcat
Author(s) User:Jdev
Extends AdvancedRobot
Targeting RS-PIF
Movement RS-Wave Surfing
Released August 5th, 2011
Best Rating 80.46 APS (40th)
Current Rating 80.46 APS (40th)
Current Version 3.15.154
Code License closed
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

How competitive is it?

Fairly well, Tomcat is in The 2000 Club now

How does it move?

Tomcat keeps sets of hits and visits logs of enemy's previous guess factors with all possible combinations of [lateral speed, acceleration, distance between, distance to forwrad wall]. When enemy's bullet hits or intercepted, Tomcat calculates accuracy of each log and when it's time to predict enemy fire angle it uses few best hits logs always and few best visit logs, when enemy hit rate is greater than 8%

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

When start positions is finded out, it's play forward enemy's movement starting from each start position, until it is not intercepted by my future bullet.

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?

No. At least now. But you can ask me.

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

Does it have any WhiteWhales?

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