My recommendation is for this targeting method to be part of a set of targeting options, used only if it is shown to be the most likely to hit a particular opponent.
Quick and Dirty - fast way to code it
Take any targeting method you already have (other than dead-on) and find the predicted difference in angle from dead-on. Shoot at the opposite angle (compared to dead-on). (e.g. your opponent is at 15 degrees, your circular targeting says to fire at +20 degrees, you fire at 355 degrees.)
Realistic - proper way to code it
Create a new targeting method based on any targeting method you already have (other than dead-on). Assume your opponent will accelerate at top speed in the opposite direction. Extrapolate his position until you have an acceptable firing solution.
This targeting method is intended against opponents to try to head-fake you by heading one way to feed your target prediction a bad assumption, then reversing direction once they detect that you have taken a shot.
Before I tried PatternMatching and then GuessFactorTargeting, I had one type of "compound aimer" that would apply a multiplier to another aimer. Feeding it a factor of -1 (and, say, a circular aimer) would have done exactly what you're describing here (well, the Q&D way). I also think that multiplying an offset by a fraction (like .5 instead of -1) could be effective versus certain types of movements. Just my two cents on a way to further abstract this concept.
In the end, PatternMatching or GuessFactorTargeting guns should handle this situation appropriately on their own (with proper segmentation). GF is what I'm pursuing right now. If your implementation of VirtualGuns were less bug-ridden than mine was (as I later realized), this might work really well. :) -- Voidious
While I expect guess-factor targeting (which to me is a misnomer because I will not be guessing anything more than regular targeting) to be able to nail the same targets, I view this to be an extension to simpler targeting methods, whereas guess-factor targeting is really a lot more involved and not something a novice bot programmer will undertake (unless he is not right in the head). --Martin Alan Pedersen