Index: branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/External Evaluator/BattleRunner.java
===================================================================
--- branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/External Evaluator/BattleRunner.java	(revision 9881)
+++ branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/External Evaluator/BattleRunner.java	(revision 9882)
@@ -22,9 +22,8 @@
 
 //
-// Please add this file to the /libs forlder in the robocode installation directory, and compile it with the following command:
-// javac -cp .;robocode.jar BattleRunner.java
+// Add this file to the HL bin folder. Compile it with the following command:
+// javac -cp c:\robocode\;robocode.jar BattleRunner.java
 //
 public class BattleRunner {
-
     static String[] defaultRobots = new String[] {
         "Evaluation.BestSolution*",
@@ -37,76 +36,64 @@
         "sample.SittingDuck"
     };
-    public static String player = "Evaluation.output*";
-    //static int 
+    public static String player = "Evaluation.output*";    
     public static int score = 0;
 
+	//
+	// This program requires at least 1 argument: the name of the robot.
+	// The second argument is the path to the robocode installation. If not give, c:\robocode is assumed. 
+	// The third argument is optional. If it is true, robocode is shown, otherwise it is hidden. 
+	//
     public static void main(String[] args) {
-
-        // Disable log messages from Robocode
-        RobocodeEngine.setLogMessagesEnabled(false);
-
-        // Create the RobocodeEngine
-        //   RobocodeEngine engine = new RobocodeEngine(); // Run from current working directory
-        RobocodeEngine engine = new RobocodeEngine(new java.io.File("F:/robocode")); // Run from C:/Robocode
-
-        // Add our own battle listener to the RobocodeEngine 
-        engine.addBattleListener(new BattleObserver());
-
-        score = 0;
-        String bots = "";
+		String roboCodePath = "C:\robocode";
+		Boolean visible = false;		
+		String bots = "";
+		int numberOfRounds = 3;
         String[] robots = new String[defaultRobots.length];
-        robots = defaultRobots.clone();
-
-        if (args.length == 1)
+        robots = defaultRobots.clone();     
+	
+		if (args.length == 1)
         {
-            robots[0] = player = args[0];
-            engine.setVisible(true);
+            robots[0] = player = args[0];            
         }
         else if (args.length == 2)
         {
             robots[0] = player = args[0];
-            engine.setVisible(false);
+			roboCodePath = args[1];            
         }
-        else if (args.length > 2)
+		else if (args.length == 3)
         {
             robots[0] = player = args[0];
-            for(int i = 1; i < args.length && i < robots.length; i++)
-                robots[i] = args[i];
+			roboCodePath = args[1];
+            visible = Boolean.valueOf(args[2]);
         }
         else
-            engine.setVisible(false);
+		{
+            System.exit(-1);
+		}		
 
+        RobocodeEngine.setLogMessagesEnabled(false);
+        RobocodeEngine engine = new RobocodeEngine(new java.io.File(roboCodePath));
+		engine.setVisible(visible);        
+        engine.addBattleListener(new BattleObserver());       
+
+		 // setup the battle specification  
         for (String s : robots)
             bots += s + ", ";
         bots = bots.substring(0, bots.length() - 1);
-
-        // Setup the battle specification
-
-        int numberOfRounds = 5;
-        BattlefieldSpecification battlefield = new BattlefieldSpecification(800, 600); // 800x600
+		
+        BattlefieldSpecification battlefield = new BattlefieldSpecification(800, 600);
         RobotSpecification[] selectedRobots = engine.getLocalRepository(bots);
 
-        System.out.println("Bots: " + bots);
-        for(RobotSpecification s : selectedRobots)
-            System.out.println("Robot name: " + s.getName());
+        for (int i = 1; i < selectedRobots.length; i++) {
+            BattleSpecification battleSpec = new BattleSpecification(numberOfRounds, battlefield, 
+			new RobotSpecification[] { selectedRobots[0], selectedRobots[i] });
 
-        for (int i = 1; i < selectedRobots.length; i++) {
-            BattleSpecification battleSpec = new BattleSpecification(numberOfRounds, battlefield, new RobotSpecification[] { selectedRobots[0], selectedRobots[i] });
-
-            // Run our specified battle and let it run till it is over
-            engine.runBattle(battleSpec, true); // waits till the battle finishes
+            // run our specified battle and wait till the battle finishes
+            engine.runBattle(battleSpec, true);
         }
-        // Cleanup our RobocodeEngine
         engine.close();
 
-        //System.out.println(player);
-        //System.out.println(robots[0]);
-        //System.out.println(args[0]);
+		// print out result which is then parsed by HeuristicLab
         System.out.println(score / (robots.length - 1));
-
-        //for(String s : robots)
-        //    System.out.println("Robot name: " + s);
-
-        // Make sure that the Java VM is shut down properly
         System.exit(0);
     }
@@ -114,16 +101,9 @@
 
 //
-// Our private battle listener for handling the battle event we are interested in.
+// The battle listener for handling the battle event we are interested in.
 //
 class BattleObserver extends BattleAdaptor {
-
-    // Called when the battle is completed successfully with battle results
-    public void onBattleCompleted(BattleCompletedEvent e) {
-        //System.out.println("-- Battle has completed --");
-
-        // Print out the sorted results with the robot names
-        //System.out.println("Battle results:");
+    public void onBattleCompleted(BattleCompletedEvent e) {    
         for (robocode.BattleResults result : e.getSortedResults()) {
-            //System.out.println("  " + result.getTeamLeaderName() + ": " + result.getScore());
             if (result.getTeamLeaderName().equals(BattleRunner.player))
                 BattleRunner.score += result.getScore();
@@ -132,13 +112,3 @@
         }
     }
-
-    // Called when the game sends out an information message during the battle
-    public void onBattleMessage(BattleMessageEvent e) {
-        //System.out.println("Msg> " + e.getMessage());
-    }
-
-    // Called when the game sends out an error message during the battle
-    public void onBattleError(BattleErrorEvent e) {
-        //System.out.println("Err> " + e.getError());
-    }
 }
Index: branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Interpreter.cs
===================================================================
--- branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Interpreter.cs	(revision 9881)
+++ branches/Robocode.TrunkInt/HeuristicLab.Problems.Robocode/3.3/Interpreter.cs	(revision 9882)
@@ -71,5 +71,5 @@
       ProcessStartInfo evaluateCodeInfo = new ProcessStartInfo();
       evaluateCodeInfo.FileName = "cmd.exe";
-      evaluateCodeInfo.Arguments = "/C java -classpath " + formattedPath + "\\libs;" + formattedPath + "\\libs\\robocode.core-1.8.1.0.jar;" + formattedPath + "\\libs\\robocode.jar;" + formattedPath + "\\libs\\picocontainer-2.14.2.jar BattleRunner Evaluation." + outputname + "* false";
+      evaluateCodeInfo.Arguments = "/C java -classpath " + formattedPath + "\\libs;" + formattedPath + "\\libs\\robocode.core-1.8.1.0.jar;" + formattedPath + "\\libs\\robocode.jar;" + formattedPath + "\\libs\\picocontainer-2.14.2.jar BattleRunner Evaluation." + outputname + "* " + formattedPath + " false";
       evaluateCodeInfo.RedirectStandardOutput = true;
       evaluateCodeInfo.RedirectStandardError = true;
