Tomcat
Tomcat | |
Author(s) | User:Jdev |
Extends | AdvancedRobot |
Targeting | RS-PIF |
Movement | RS-Wave Surfing |
Released | August 5th, 2011 |
Best Rating | 82.22 APS (25th) |
Current Rating | 82.22 APS (25nd) |
Current Version | 3.22 |
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?
- 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 and in Top 25 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% TO DO: explain actual algorithm
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?
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