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.