Bones

From Robowiki
Revision as of 21:20, 31 October 2016 by Damij (talk | contribs) (formatting issues)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Bones

Author(s) Theo Extends AdvancedRobot Targeting DC-based Guess Factors Movement Anti-Gravity Bullet Projection Movement Current Version 1.0

Download

https://sites.google.com/site/robotrepository/theo.simple.Bones_1.0.jar?attredirects=0&d=1


Background Information

What's special about it? Simplicity while still being explicit enough to understand, hoping it may help as an open code reference bot How competitive is it? Just uploaded to RoboRumble, should place near BasicGFSurfer or just below.


Strategy

How does it move? Anti-Gravity from hundreds of wall points, any enemies, and projected bullets when there are 2 or fewer enemies (don't really know if that'll work yet, because I haven't written a melee bot in roughly 9 years and forgot to do melee testing and corrections for multiple opponents, so for now, he's primarily a duelist.

How does it fire? Where he got his name. I was writing a clear DC bot (bare bones) to reference future work against and it turns out I had too much caffeine when the movement was born. At least the gun was written first. Uses firing-waves only and nearest-neighbors to analyze densities Dynamic Clustering

How does it dodge bullets? DC-based surfing technique to analyze the most-dense, dangerous area on every incoming wave (I calculate neighbors, and the dangerous point from there, of every wave twice, when it's fired it's still used, and when it becomes the current surfed wave in case there were updates in between). All bullets up to the current surfing wave are projected only as far as the wave has traveled (kinda keeps me back from the enemy), but the closest wave is projected to the current distance from the wave's firing point, so it causes left and right movement.

How does the melee strategy differ from one-on-one strategy? I haven't really written too much for Bones to be effective in melee, I just made it so he could handle multiple opponents in his movement.


Additional Information

Where did you get the name? He is a "Bare Bones" implementation with clean code for KNN brute-force analysis. Instead of ruining every bot I make with too much fluff, I wanted to set out and make a bot that really is as simple as I can make it. No coding tricks, no effective compression of code into fewer lines, just good ol' readable stuff.

Can I use your code? Of course, it'll be in the .jar file (should be the url up top).

What's next for your robot? Fluff, meat, and muscle on the skeleton. Making him fancy with some bling maybe. Probably just going to keep him and move back toward goTo surfing with other bots.

Does it have any white whales? Unlike Ahab and Pequod (named for finally being able to beat Chalk in 1v1), he doesn't have terribly much. If I had to pick his biggest rival, it's probably BasicGFSurfer.

What other robot(s) is it based on? Mostly my other bots Ahab and Pequod, but really I just wrote the code over a few days without referencing much, so he's pretty much his own thing. They inspired me to write him though, because Ahab and Pequod became bloated with this and that, and trying to do as much as I can instead of keeping it simple. So I wrote Mr. Bones to have a measurement tool for future work.


-Theo