class GuessFactorC { TeamRobot bot; UT unit; ArrayList waves = new ArrayList(); Rectangle2D fieldRectangle; //private int uniqueSegments = 31; //private int fieldSegments = 5; //private int distanceSegments = 6; //private int velocitySegments = 5; //private int xForceSegments = 22; //private int yForceSegments = 22; private int[][][][][] stats = new int[5][6][5][22][31]; //private int headingSegments = 20; //private int[][][][][] stats = new int[fieldSegments][distanceSegments][velocitySegments][headingSegments][uniqueSegments]; private int[] currentStats; private int direction = 1; //private double maxDistance; public GuessFactorC(TeamRobot b, UT u) { fieldRectangle = new Rectangle2D.Double(0, 0, b.getBattleFieldWidth(), b.getBattleFieldHeight()); bot = b; unit = u; //maxDistance = new Point2D.Double(0,0).distance(bot.getBattleFieldWidth(), bot.getBattleFieldHeight()); } public void run() { UI info = unit.lastInfo(); Point2D.Double enemyPos = new Point2D.Double(info.x, info.y); //let's process the waves now: for (int i=0; i= 0) ? 1 : -1; //int distanceIndex = (int)info.distance/((int)maxDistance/distanceSegments); int distanceIndex = (int)info.distance/((int)1132/6); int velocityIndex = (int)info.velocity/2; int yForceIndex = (int)((Math.cos(info.heading)*10)+10); int fieldIndex = getOutIndex(); //bot.out.println(headingIndex); //currentStats = stats[fieldIndex][distanceIndex][velocityIndex][yForceIndex]; currentStats = stats[getOutIndex()][(int)info.distance/((int)1132/6)][(int)info.velocity/2][(int)((Math.cos(info.heading)*10)+10)]; //currentStats = stats[fieldIndex][distanceIndex][velocityIndex][headingIndex]; WaveBullet newWave = new WaveBullet(new Point2D.Double(bot.getX(), bot.getY()), absBearing, 11, orientation, bot.getTime(), currentStats); waves.add(newWave); } public double getBearing() { UI info = unit.lastInfo(); int bestindex = 15; //initialize it to be in the middle, guessfactor 0. //for (int i=0; i