Difference between revisions of "Blue Shift"
m (Fix links) |
|||
Line 6: | Line 6: | ||
Fire a group of bullets that reach your target at the same time, either by moving the robot, changing bullet power, or a combination of both. | Fire a group of bullets that reach your target at the same time, either by moving the robot, changing bullet power, or a combination of both. | ||
+ | |||
+ | |||
+ | == Concept == | ||
+ | |||
+ | Use only on stationary targets (shows concept when farther away). | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | package wiki; | ||
+ | |||
+ | import robocode.*; | ||
+ | |||
+ | public class BlueShift extends AdvancedRobot | ||
+ | |||
+ | { | ||
+ | |||
+ | double turns; | ||
+ | |||
+ | double time; | ||
+ | |||
+ | public void run() | ||
+ | |||
+ | { | ||
+ | |||
+ | setTurnRadarRightRadians(Double.POSITIVE_INFINITY); | ||
+ | |||
+ | } | ||
+ | |||
+ | public void onScannedRobot(ScannedRobotEvent e) | ||
+ | |||
+ | { | ||
+ | |||
+ | double absoluteBearing = e.getBearingRadians() + getHeadingRadians(); | ||
+ | |||
+ | double distance = e.getDistance(); | ||
+ | |||
+ | setTurnRightRadians(robocode.util.Utils.normalRelativeAngle(absoluteBearing - getGunHeadingRadians())); | ||
+ | |||
+ | turns -= getTime() - time; | ||
+ | |||
+ | time = getTime(); | ||
+ | |||
+ | if (turns <= 0) | ||
+ | |||
+ | { | ||
+ | |||
+ | time = getTime(); | ||
+ | |||
+ | turns = distance / 11; | ||
+ | |||
+ | setFire(3); | ||
+ | |||
+ | } | ||
+ | |||
+ | else | ||
+ | |||
+ | { | ||
+ | |||
+ | setFire((distance / turns - 20) / -3); | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | |||
+ | ---- | ||
This is just a theory I had after viewing the [[Waves]] article. Please comment, add code, or expand this article. | This is just a theory I had after viewing the [[Waves]] article. Please comment, add code, or expand this article. | ||
[[Category:Statistical Targeting]] | [[Category:Statistical Targeting]] |
Revision as of 21:34, 30 July 2009
Named after the Doppler Effect
The picture to the right shows a group of waves clustered together.
How it Works
Fire a group of bullets that reach your target at the same time, either by moving the robot, changing bullet power, or a combination of both.
Concept
Use only on stationary targets (shows concept when farther away).
package wiki;
import robocode.*;
public class BlueShift extends AdvancedRobot
{
double turns;
double time;
public void run()
{
setTurnRadarRightRadians(Double.POSITIVE_INFINITY);
}
public void onScannedRobot(ScannedRobotEvent e)
{
double absoluteBearing = e.getBearingRadians() + getHeadingRadians();
double distance = e.getDistance();
setTurnRightRadians(robocode.util.Utils.normalRelativeAngle(absoluteBearing - getGunHeadingRadians()));
turns -= getTime() - time;
time = getTime();
if (turns <= 0)
{
time = getTime();
turns = distance / 11;
setFire(3);
}
else
{
setFire((distance / turns - 20) / -3);
}
}
}
This is just a theory I had after viewing the Waves article. Please comment, add code, or expand this article.