Difference between revisions of "LittleBlackBook"

From Robowiki
Jump to navigation Jump to search
(Add links)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
== Background Information ==
 
 
 
{{Infobox Robot
 
{{Infobox Robot
 
| name            = LittleBlackBook
 
| name            = LittleBlackBook
Line 6: Line 4:
 
| author          = [[User:Miked0801|Miked0801]]
 
| author          = [[User:Miked0801|Miked0801]]
 
| targeting      = [[Guess Factor]]
 
| targeting      = [[Guess Factor]]
| movement        = Stop'n'go, Ram, & Random
+
| movement        = [[Stop And Go|Stop'n'go]], [[Ramming Movement|Ram]], & [[Random Movement|Random]]
| current_version = 1.65
+
| current_version = 1.0
 
| released        = June 14, 2009
 
| released        = June 14, 2009
 
| isMelee        = no (maybe)
 
| isMelee        = no (maybe)
 
| isOpenSource    = yes
 
| isOpenSource    = yes
| download_link  = Robot Repository
+
| download_link  = http://robocode-archive.strangeautomata.com/robots/mld.jdc.nano.LittleBlackBook_1.0.jar
 
}}
 
}}
  
 
+
== Background Information ==
 
; Bot Name
 
; Bot Name
 
: LittleBlackBook
 
: LittleBlackBook
Line 28: Line 26:
  
 
; How competitive is it?
 
; How competitive is it?
: #1 in 1v1 ranking - way #1#3 in Micros. Still improving as well.
+
: #2 in Nano Rumble
 +
: #17 in Micro Rumble (next nearest nano is 16th)
 +
: #39 in Mini Rumble (next nearest nano is 33rd)
 +
:Overall rumble isn't real yet as I haven't tabled the additional 300 bots - yetI probably won't be able to fit them either without going over 200k in size.
  
 
== Strategy ==
 
== Strategy ==
Line 35: Line 36:
 
: From studies of its opponents (offline), it can do a number of things - or combine them based on distance from opponent:
 
: From studies of its opponents (offline), it can do a number of things - or combine them based on distance from opponent:
 
* Straight orbit - good for bots that never use full linear aim, head on aim, or for getting away from an edge or rammer.
 
* Straight orbit - good for bots that never use full linear aim, head on aim, or for getting away from an edge or rammer.
* Good but not perfect stop and go in one direction.  Scoot forward a bit on every energy drop.  Good for average linear aimers, combined linear/head on aim bots at medium and long range, and some PM bots when mixed with other modes.
+
* Excellent but not perfect stop and go in one direction.  Scoot forward a bit on every energy drop.  Good for average linear aimers, combined linear/head on aim bots at medium and long range, and some PM bots when mixed with other modes.
 
* Near perfect oscollation - good for full or nearly full linear aim bots.  Tends to stick on walls if the attacking bot is aggresive due to wall reversing velocity code and limited space.  Won't catch simultaneous fire and hit and wall hits and bullets of 1 or less energy hits confuse it as well.
 
* Near perfect oscollation - good for full or nearly full linear aim bots.  Tends to stick on walls if the attacking bot is aggresive due to wall reversing velocity code and limited space.  Won't catch simultaneous fire and hit and wall hits and bullets of 1 or less energy hits confuse it as well.
 
* Psuedo Random - Tunable 0-100% of the time forward and back over mixed random distance.  Makes a fairly flat GF and PM profile.  Best against advanced bots.
 
* Psuedo Random - Tunable 0-100% of the time forward and back over mixed random distance.  Makes a fairly flat GF and PM profile.  Best against advanced bots.
 
* Ram - if all else fails, I can be a simple RAM bot :)
 
* Ram - if all else fails, I can be a simple RAM bot :)
* Any mix of the above segmented on distance.  Mixing helps alot with PM bots.
+
* Any mix of the above segmented on distance.  Mixing helps alot with Advanced bots.
  
 
; How does it fire?
 
; How does it fire?
: String based Guess Factor segmented heavily by distance and a little randomness, then sign modified by direction of average velocity (stop'n'go defeater).
+
: String based [[Guess Factor]] segmented heavily by distance, then sign modified by direction of average velocity (stop'n'go defeater).
  
 
; How does it [[Dodging Bullets|dodge bullets]]?
 
; How does it [[Dodging Bullets|dodge bullets]]?
: Watches enemy power levels and moves when it changes at all.  Wall hits will fool it.
+
: Watches enemy power levels and moves when it changes 0.1-3.1 units.  Wall hits will fool it.
  
 
; How does the [[Melee|melee]] strategy differ from [[One-On-One|one-on-one]] strategy?
 
; How does the [[Melee|melee]] strategy differ from [[One-On-One|one-on-one]] strategy?
Line 62: Line 63:
  
 
; What's next for your robot?
 
; What's next for your robot?
* Investigate Lateral velocity GF inclusing and better dodging.  Check costs against loss of another table.
+
* Begin considering using what I've learned to make a strong Micro Bot.
* Add all other rumble bots for improvements outside of the nano land or at least up to the minis. (Micros 100% complete.)
+
* Micro Crown.  Maybe, just maybe will be able to get there.  Just 1.5% APS away right now.
* 2K Glicko Nanos.
+
* Investigate Lateral velocity GF inclusing and better dodging.  Have room, just need to make it fit within 200k of overall table space.
 +
* Add all other rumble bots for improvements outside of the nano land or at least up to the minis. (Minis 100% complete, but they need some tuning.)
 +
* Perfect PL Score Nanos.  [[Fuatisha]] is the only sticking point now.
 +
* 2K Club - both ratings in Nanos.  Heck, getting 2K in both puts me within shouting distance of the 2100 club for Glicko.
 +
* <strike> Get above 80% APS in Micros.</strike>
 +
* <strike>2K Glicko Nanos.</strike>
 
* <strike>Top 5 Micros</strike> (and perhaps top 3)
 
* <strike>Top 5 Micros</strike> (and perhaps top 3)
* Spend 4 bytes or so to get started before the enemy shoots for a small score boost. (Maybe)
+
* <strike>Spend 6 bytes or so to get started before the enemy shoots for a small score boost.</strike> (Doesn't work)
* Retune with new and improved bullet dodging added.
 
 
* <strike>Get above 80% APS in nanos.</strike>
 
* <strike>Get above 80% APS in nanos.</strike>
 
* <strike>Improve default parameters.</strike>
 
* <strike>Improve default parameters.</strike>
Line 74: Line 79:
 
* <strike>Improved dodging and flatter random movement.</strike>  
 
* <strike>Improved dodging and flatter random movement.</strike>  
 
* <strike>Address 0 velocity aiming issues via averaging or something.</strike>
 
* <strike>Address 0 velocity aiming issues via averaging or something.</strike>
* <strike>Codesize reduction.  Found 50+ bytes thus far.</strike>
+
* <strike>Codesize reduction.  Found 80+ bytes thus far.</strike>
 
* <strike>Dynamic distancing per opponent - </strike>
 
* <strike>Dynamic distancing per opponent - </strike>
 
* <strike>Investigate other segmentations methods besides distance - which I'm told is one of the weakest.</strike> Next major version, perhaps in a micro.
 
* <strike>Investigate other segmentations methods besides distance - which I'm told is one of the weakest.</strike> Next major version, perhaps in a micro.
Line 80: Line 85:
  
 
; Does it have any [[White Whale|White Whales]]?
 
; Does it have any [[White Whale|White Whales]]?
: Multi-mode bots hurt its aim, the more modes, the worse I do.  Bots that dynamically change their lead values and keep them constant over the life of the match(surfers) give him a very, very tough time.  Surprisingly, PM bots are handled well by the its movement code.  Basically, a flat GF profile bot with mulit-modes is a big problem.
+
: Multi-mode bots hurt its aim, the more modes, the worse I do.  Bots that dynamically change their movement values and keep them constant over the life of the match(surfers) give him a very, very tough time.  Surprisingly, PM bots are handled well by the its movement code.  Basically, a flat GF profile bot with mulit-modes is a big problem.  Also, bots with top notch guns will beat me.
  
 
Here's the current, updated list:
 
Here's the current, updated list:
* [[Neophyte Pattern]] Strong movement. Ditto on Weaknesses. (Improved a bit last version.)
+
* [[Fuatisha]] - Very strong new bot.  Very, VERY hard to beat with my current bot.  49% is the best I've done...  
* [[Fuatisha]] - Very strong new bot.  Very, VERY hard to beat with my current bot.
+
* [[MosquitoPM]] - Strong gun and decent movement.  I get around 52% right now, which is within Standard Deviation of failing
* <Strike>[[Assertive]] - Good, strong bot.</Strike> Solved.
+
* The top 10 Micros and 20 or so Minis.
* [[NeophytePRAL]] - Gotta figure out how to dodge him consistently. (Improved)
+
* <Strike>[[NeophytePRAL]] - Gotta figure out how to dodge him consistently.</Strike>
* [[Moebius]] - strong movement and an excellent gun
+
* <Strike>[[Moebius]] - strong movement and an excellent gun </Strike> - Solved
* The top 10 Micros and strong PM/GF micro bots with variable movement.
+
* <Strike>[[Neophyte Pattern]] Strong movement. Ditto on Weaknesses. </Strike> - Solved
 
*<Strike>DosEXE 0.9a - Two bots with same name but different versions entered.  My tables cannot cope with this.</Strike>  Optimized a solution for both.
 
*<Strike>DosEXE 0.9a - Two bots with same name but different versions entered.  My tables cannot cope with this.</Strike>  Optimized a solution for both.
 
*<Strike>Ram Bots</Strike> Variable Fire Power kills them dead.  Variable distance make the slaughter worse.
 
*<Strike>Ram Bots</Strike> Variable Fire Power kills them dead.  Variable distance make the slaughter worse.
Line 95: Line 100:
 
: Pretty much unique, though its movement started out somewhat close to [[Moebius]]'s before being improved.
 
: Pretty much unique, though its movement started out somewhat close to [[Moebius]]'s before being improved.
  
I keep a running blob about this bot on the discussion page.
+
: I keep a running blog about this bot on the discussion page.
  
== Current Ranks ==
 
#1 in Nano Rumble
 
#5 in Micro Rumble
 
Mini and overall aren't real yet.
 
 
[[Category:NanoBots]]
 
[[Category:NanoBots]]
 
[[Category:Bots]]
 
[[Category:Bots]]
 +
 +
__NOTOC__

Latest revision as of 05:36, 24 August 2017

LittleBlackBook
Author(s) Miked0801
Extends AdvancedRobot
Targeting Guess Factor
Movement Stop'n'go, Ram, & Random
Released June 14, 2009
Current Version 1.0
Download

Background Information

Bot Name
LittleBlackBook
Author
Miked0801
Extends
AdvancedRobot
What's special about it?
This is a table driven bot. It uses canned guess factors, desired engage distances, fire power, movement type, and movement length all segmented upon distance from its enemy. It also has a default table it uses for unknown bots and ignores the bot's version number for behavior so that bot upgrades don't confuse it much.
How competitive is it?
#2 in Nano Rumble
#17 in Micro Rumble (next nearest nano is 16th)
#39 in Mini Rumble (next nearest nano is 33rd)
Overall rumble isn't real yet as I haven't tabled the additional 300 bots - yet. I probably won't be able to fit them either without going over 200k in size.

Strategy

How does it move?
From studies of its opponents (offline), it can do a number of things - or combine them based on distance from opponent:
  • Straight orbit - good for bots that never use full linear aim, head on aim, or for getting away from an edge or rammer.
  • Excellent but not perfect stop and go in one direction. Scoot forward a bit on every energy drop. Good for average linear aimers, combined linear/head on aim bots at medium and long range, and some PM bots when mixed with other modes.
  • Near perfect oscollation - good for full or nearly full linear aim bots. Tends to stick on walls if the attacking bot is aggresive due to wall reversing velocity code and limited space. Won't catch simultaneous fire and hit and wall hits and bullets of 1 or less energy hits confuse it as well.
  • Psuedo Random - Tunable 0-100% of the time forward and back over mixed random distance. Makes a fairly flat GF and PM profile. Best against advanced bots.
  • Ram - if all else fails, I can be a simple RAM bot :)
  • Any mix of the above segmented on distance. Mixing helps alot with Advanced bots.
How does it fire?
String based Guess Factor segmented heavily by distance, then sign modified by direction of average velocity (stop'n'go defeater).
How does it dodge bullets?
Watches enemy power levels and moves when it changes 0.1-3.1 units. Wall hits will fool it.
How does the melee strategy differ from one-on-one strategy?
No melee strategy, but it would probably be ok. Radar is not good enough for strong melee though.
What does it save between rounds and matches?
Nothing real. It has all it needs in its string tables.

Additional Information

Where did you get the name?
It has a little black book on every bot it competes against.
Can I use your code?
Go for it, though give credit as this is a new concept that has yet to be fully fleshed out by me. I'd like to see how far I can push this idea before fighting the next generation of SGF gun bots :)
What's next for your robot?
  • Begin considering using what I've learned to make a strong Micro Bot.
  • Micro Crown. Maybe, just maybe will be able to get there. Just 1.5% APS away right now.
  • Investigate Lateral velocity GF inclusing and better dodging. Have room, just need to make it fit within 200k of overall table space.
  • Add all other rumble bots for improvements outside of the nano land or at least up to the minis. (Minis 100% complete, but they need some tuning.)
  • Perfect PL Score Nanos. Fuatisha is the only sticking point now.
  • 2K Club - both ratings in Nanos. Heck, getting 2K in both puts me within shouting distance of the 2100 club for Glicko.
  • Get above 80% APS in Micros.
  • 2K Glicko Nanos.
  • Top 5 Micros (and perhaps top 3)
  • Spend 6 bytes or so to get started before the enemy shoots for a small score boost. (Doesn't work)
  • Get above 80% APS in nanos.
  • Improve default parameters.
  • One last tune pass for current bots.
  • Create a seperate bot to generate my tables for me - man that was tedious to do by hand.
  • Improved dodging and flatter random movement.
  • Address 0 velocity aiming issues via averaging or something.
  • Codesize reduction. Found 80+ bytes thus far.
  • Dynamic distancing per opponent -
  • Investigate other segmentations methods besides distance - which I'm told is one of the weakest. Next major version, perhaps in a micro.
  • Partial string matches on names. Need 6 bytes or so more.
Does it have any White Whales?
Multi-mode bots hurt its aim, the more modes, the worse I do. Bots that dynamically change their movement values and keep them constant over the life of the match(surfers) give him a very, very tough time. Surprisingly, PM bots are handled well by the its movement code. Basically, a flat GF profile bot with mulit-modes is a big problem. Also, bots with top notch guns will beat me.

Here's the current, updated list:

  • Fuatisha - Very strong new bot. Very, VERY hard to beat with my current bot. 49% is the best I've done...
  • MosquitoPM - Strong gun and decent movement. I get around 52% right now, which is within Standard Deviation of failing
  • The top 10 Micros and 20 or so Minis.
  • NeophytePRAL - Gotta figure out how to dodge him consistently.
  • Moebius - strong movement and an excellent gun - Solved
  • Neophyte Pattern Strong movement. Ditto on Weaknesses. - Solved
  • DosEXE 0.9a - Two bots with same name but different versions entered. My tables cannot cope with this. Optimized a solution for both.
  • Ram Bots Variable Fire Power kills them dead. Variable distance make the slaughter worse.
What other robot(s) is it based on?
Pretty much unique, though its movement started out somewhat close to Moebius's before being improved.
I keep a running blog about this bot on the discussion page.