最近公司流行玩Robocode,这是一个坦克机器人战斗仿真引擎,里面可以写一些自己的Tank来互相战斗。
主要是使用了躲避子弹和避墙的思想
package azrael;
import robocode.*;
//import java.awt.Color;
// API help : http://robocode.sourceforge.net/docs/robocode/robocode/Robot.html
/**
* Aldis - a robot by (your name here)
*/
public class Aldis extends AdvancedRobot {
double previousEnergy = 100;
int movementDirection = 1;
int gunDirection = 1;
int direction = 1;
/**
* run: Aldis's default behavior
*/
public void run() {
while (true) {
setTurnRightRadiansOptimal(adjustHeadingForWalls(0));
setAhead(100);
execute();
}
}
private static final double DOUBLE_PI = (Math.PI * 2);
private static final double HALF_PI = (Math.PI / 2);
private static final double WALL_AVOID_INTERVAL = 10;
private static final double WALL_AVOID_FACTORS = 20;
private static final double WALL_AVOID_DISTANCE = (WALL_AVOID_INTERVAL * WALL_AVOID_FACTORS);
public double calculateBearingToXYRadians(double sourceX, double sourceY,
double sourceHeading, double targetX, double targetY) {
return normalizeRelativeAngleRadians(
Math.atan2((targetX - sourceX