package sylvanPackage;
import java.awt.*;
import java.awt.geom.*;
import java.util.*;
import java.util.List;
import robocode.*;
import robocode.util.*;
public class Sylvan_test extends AdvancedRobot {
//initial
static Boolean hithithit = false;
enemyState enemy = new enemyState();
//pattern match
private static final int MAX_PATTERN_LENGTH = 30;
private static Map<String, int[]> matcher = new HashMap<String, int[]>(40000);
private static String enemyHistory;
//predict
private static double FIRE_POWER = 3;
private static double FIRE_SPEED = Rules.getBulletSpeed(FIRE_POWER);
private static List<Point2D.Double> predictions = new ArrayList<Point2D.Double>();
//move
static final double BASE_MOVEMENT = 180;
static final double BASE_TURN = Math.PI / 1.5;
static double movement;
public void run() {
setAdjustGunForRobotTurn(true);
setAdjustRadarForGunTurn(true);
setBodyColor(Color.BLACK);
setGunColor(Color.BLACK);
setRadarColor(Color.BLACK);
setScanColor(Color.BLACK);
enemyHistory = "";
movement = Double.POSITIVE_INFINITY;
setTurnRadarRight(400);
do {
scan();
if (getDistanceRemaining() == 0) {
setAhead(movement = -movement);
setTurnRightRadians(BASE_TURN);
hithithit = false;
}
} while (true);
}
////////////////////////////**EVENT**/////////////////////////////////////
public void onHitWall(HitWallEvent e) {
if (Math.abs(movement) > BASE_MOVEMENT) {
movement = BASE_MOVEMENT;
}
}
public void onRobotDeath(RobotDeathEvent e) {
setTurnRadarRight(400);
}
public void onHitByBullet(HitByBulletEvent e) {
setTurnRadarRight(400);