diff --git a/src/neural/BattlefieldParameterEvaluator.java b/src/neural/BattlefieldParameterEvaluator.java index e4bd11e..99fabf6 100644 --- a/src/neural/BattlefieldParameterEvaluator.java +++ b/src/neural/BattlefieldParameterEvaluator.java @@ -6,26 +6,21 @@ import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Random; - import javax.imageio.ImageIO; - import org.encog.engine.network.activation.ActivationSigmoid; import org.encog.ml.data.basic.BasicMLData; import org.encog.neural.data.basic.BasicNeuralDataSet; import org.encog.neural.networks.BasicNetwork; import org.encog.neural.networks.layers.BasicLayer; import org.encog.neural.networks.training.propagation.resilient.ResilientPropagation; - import robocode.BattleResults; import robocode.control.*; import robocode.control.events.*; public class BattlefieldParameterEvaluator { // Minimum allowable battlefield size is 400 - final static int MINBATTLEFIELDSIZE = 400; final static int MAXBATTLEFIELDSIZE = 4000; // Minimum allowable gun cooling rate is 0.1 - final static double MINGUNCOOLINGRATE = 0.1; final static double MAXGUNCOOLINGRATE = 10; final static int NUMBATTLEFIELDSIZES = 601; final static int NUMCOOLINGRATES = 501; @@ -39,7 +34,7 @@ public class BattlefieldParameterEvaluator { static int NdxBattle; static double[] FinalScore1; static double[] FinalScore2; - + public static void main(String[] args) { double[] BattlefieldSize = new double[NUMSAMPLES]; double[] GunCoolingRate = new double[NUMSAMPLES]; @@ -66,10 +61,8 @@ public class BattlefieldParameterEvaluator { RobotSetup[] robotSetups = new RobotSetup[2]; for (NdxBattle = 0; NdxBattle < NUMSAMPLES; NdxBattle++) { // Choose the battlefield size and gun cooling rate   -// BattlefieldSize[NdxBattle] = MAXBATTLEFIELDSIZE * (0.1 + 0.9 * rng.nextDouble()); - BattlefieldSize[NdxBattle] = rangedRand(rng, MINBATTLEFIELDSIZE, MAXBATTLEFIELDSIZE); -// GunCoolingRate[NdxBattle] = MAXGUNCOOLINGRATE * (0.1 + 0.9 * rng.nextDouble()); - GunCoolingRate[NdxBattle] = rangedRand(rng, MINGUNCOOLINGRATE, MAXGUNCOOLINGRATE); + BattlefieldSize[NdxBattle] = MAXBATTLEFIELDSIZE * (0.1 + 0.9 * rng.nextDouble()); + GunCoolingRate[NdxBattle] = MAXGUNCOOLINGRATE * (0.1 + 0.9 * rng.nextDouble()); // Create the battlefield BattlefieldSpecification battlefield = new BattlefieldSpecification((int) BattlefieldSize[NdxBattle], (int) BattlefieldSize[NdxBattle]); @@ -197,33 +190,4 @@ public class BattlefieldParameterEvaluator { System.out.println("Err> " + e.getError()); } } - - - - /** - * Returns a pseudo-random number between min and max, inclusive. The difference between min and max can be at most - * - * @param min - * Minimum value - * @param max - * Maximum value. Must be greater than min. - * @return Double between min and max, inclusive. - * @see java.util.Random#nextDouble(int) - */ - private static double rangedRand(Random rng, double min, double max) { - - // Make sure the randomizer was initialised - if (rng == null) - throw new RuntimeException("PRNG not initialised prior to call"); - - // Check for the limit - if (Double.valueOf(max - min).isInfinite()) - throw new RuntimeException("Value od max - min is infinite. Change the range."); - - // nextInt is normally exclusive of the top value, so add 1 to make it inclusive - double randomNum = min + (max - min) * rng.nextDouble(); -// int randomNum = rng.nextDouble((max - min) + 1) + min; - - return randomNum; - } }