[Home]BotBuilding/Tips2

Robo Home | BotBuilding | Changes | Preferences | AllPages

Showing revision 9
Here are some general 'milestones' that were important (to me) along the way:

  1. Develop a debugging system. Be able to print some text as you go and some all at once at the end. Steal someone's file writing code and make it a debugging option.
  2. Predict what your bot's position, heading, and velocity will be next turn based on this turn's instructions.
  3. Develop a crude movement style.
  4. Develop a crude wall avoidance algorithm.
  5. Develop a crude enemy scan data structure.
  6. Review some basic trigonometry.
  7. Make your turret lock on to your enemy's position. Test it in all 4 quadrants.
  8. Make your radar lock on to your enemy's position, sweeping 22.5 degrees to either side of it.
  9. Fire your gun straight ahead and hit a sitting target.
  10. Predict where your enemy's position will be if he keeps going straight ahead at his present speed for n turns.
  11. Determine if a bullet fired now could hit the target at turn n, limited to 11.0~19.7 distance/tick (min/max bullet velocity).
  12. Hit your target using linear projection.
  13. Adjust your prediction slightly to account for your bullet not actually firing until after you and your target have been moved one tick.
  14. Improve your enemy scan data structure to include one additional scan history.
  15. Predict where your enemy's position will be if he keeps changing heading at the same rate at his present speed for n turns.
  16. Hit your target using circular projection.

You should now be able to beat all sample robots.

I put debugging first because it's that important. Some things I did that you may want to implement:

-- Martin Alan Pedersen


[Along the lines of debugging, I would also add a couple key things from my experiences:

-- Voidious


Robo Home | BotBuilding | Changes | Preferences | AllPages
Edit revision 9 of this page | View other revisions | View current revision
Edited October 31, 2006 17:25 EST by Voidious (diff)
Search: