Random Targeting

From Robowiki
Revision as of 02:00, 12 November 2007 by Voidious (talk | contribs) (new RandomTargeting page, lean and mean)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

A method of Targeting that simply chooses a random angle among the angles that could possibly hit the opponent. Some successful NanoBots use this firing method. Its implementation is very small and for unpredictable movements, it will give a consistent hit percentage.

Example

public void onScannedRobot(ScannedRobotEvent e) {
    double randomGuessFactor = (Math.random() - .5) * 2;
    double bulletPower = 3;
    double maxEscapeAngle = Math.asin(8.0/(20 - (3 * bulletPower)));
    double firingAngle = randomGuessFactor * maxEscapeAngle;
    double absBearingToEnemy = e.getBearingRadians() + getHeadingRadians();
	
    setTurnGunRightRadians(Utils.normalRelativeAngle(
            absBearingToEnemy + firingAngle - getGunHeadingRadians()));
    fire(bulletPower);
}

See also