Robo Home | SineSweep | Changes | Preferences | AllPages

Since you obviously had to deal with a high level of precision, do you know how to get the exact distance of a bullet fired by the enemy to its center? I've tried distance=0 (the enemy's x,y at the time of the energy drop) and any circle around this point with a fixed width, but both seem inaccurate. In fact i observed that the actual distance from that x,y point varies with each shot. What are your findings? --Vic

I'm not sure what Vuen found, but have you tried using your opponent's previous x,y as the origin? Watching sinesweep and oddbot I find that their interception rates are through the roof on stationary bots, so I suspect robocode is launching them, then next tick you see their dropped energy, or that they're being launched from some interpolation of their move that tick. Likely the former. -- Kuuran

Sweet, you still have an old version of SineSweep? Yes, back in the day, I had a working SineSweep with an extremely high level of precision; it could consistently beat bots like Tron without ever taking an offensive shot. It's interception rate was consistently upwards of 80% on any bot that stayed far enough away from it; I think there were a few mathematical flaws because any bots that stayed near it (<250 or so) could leadfire it and their bullets would not be interceptable. Nonetheless, it was totally impressive to watch it take down some of the most powerful pattern analysers through a few wellplaced shots. Unfortunately I never uploaded the newest version because I had never really finished it, and I formatted my harddrive without a backup, so that was lost, along with any other versions of SineSweep I had and all their source code. I suppose part of the reason I never finished it is because it all got too complicated for me to understand, and I was at a loss at improving it because everything was so tightly integrated that it was hardly possible anymore to change a few things without everything being drastically affected. For that reason I'm kindof glad that I'm restarting it; it will be far more modular, with all of its systems well isolated to allow easy modification.

If you're curious about the math behind BulletShielding, look in the repository forums under game suggestions (yes I know, I screwed up, I posted it in the wrong forum). Pretty soon (a week or so?) I'll rewrite the explanation here under BulletShielding with some spiffy diagrams and the like. I am currently in the process of rebuilding a framework for my new powerhouse bot; once it is in working order, I will use the same framework, analysers, and iterators to rebuild SineSweep. Give me a month or two and I'll hopefully have something to show :)

[edit] Oh and to find the source of the bullet fired iirc you have to look at the enemy's position one frame ago but iterate the bullet twice from there. Very strange I know, but it ends up perfect (see Wave for a screenshot of Fractal, my new bot, tracking some bullets). -- Vuen

Ok, thanx! when you say "iterate the bullet twice" do you mean it has travelled the distance as if it had travelled for two frames instead of the one frame it should have? --Vic

It seems to be as I said, the bullet is fired from the previous position, but your radar doesn't tell you about a drop until the next turn. So you run two turns worth of travel from the previous position. Makes sense to me. -- Kuuran

Thanx guys. Fixing this also solved a tenacious bug in my enemybullet buffer that was caused by this inaccuracy. I knew the bug was there, but i had no idea this caused it. Sometimes the actual enemy bullet was so far behind my virtual bullet, that I assumed the bullet had missed me, and one tick later the real one would hit me. -- Vic

Any luck with finishing it yet? --Starrynte

Robo Home | SineSweep | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited June 29, 2007 22:32 EST by cpe-75-84-83-181.socal.res.rr.com (diff)