Compare commits
15 Commits
Author | SHA1 | Date |
---|---|---|
zhoudaxia | ba97cf4450 | |
zhoudaxia | ce72ad8a55 | |
zhoudaxia | 15f56c9d26 | |
zhoudaxia | 428f63be82 | |
zhoudaxia | 37cb8ae223 | |
zhoudaxia | 01614f6152 | |
zhoudaxia | 711da1c2e4 | |
zhoudaxia | 728a702a9d | |
zhoudaxia | 18653a1fe4 | |
zhoudaxia | cf4255bf7f | |
zhoudaxia | 3f28bbc589 | |
zhoudaxia | 289fd3897e | |
zhoudaxia | db49a0302a | |
zhoudaxia | 167ade0f7b | |
zhoudaxia | 1ccaad8189 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,2 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.launching.PREF_VM_XML=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<vmSettings defaultVM\="57,org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType13,1471573647997" defaultVMConnector\="">\r\n<vmType id\="org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType">\r\n<vm id\="1471573647997" name\="jdk1.6.0_45" path\="C\:\\Program Files\\Java\\jdk1.6.0_45"/>\r\n</vmType>\r\n</vmSettings>\r\n
|
|
@ -0,0 +1,4 @@
|
||||||
|
activeuserprofiles=DESKTOP-SHKMAML;Team
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.rse.systemtype.local.systemType.defaultUserId=Terrans Force
|
||||||
|
useridperkey=DESKTOP-SHKMAML.Local\=Terrans Force;
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,29 @@
|
||||||
|
INDEX VERSION 1.126+E:\2016Spring\robocodefiles\download\app\workspace_robo4\.metadata\.plugins\org.eclipse.jdt.core
|
||||||
|
3253539546.index
|
||||||
|
240634369.index
|
||||||
|
3357244662.index
|
||||||
|
3837392347.index
|
||||||
|
1270703585.index
|
||||||
|
743580145.index
|
||||||
|
4213330522.index
|
||||||
|
2815204631.index
|
||||||
|
972965919.index
|
||||||
|
649753860.index
|
||||||
|
2097671088.index
|
||||||
|
2394798482.index
|
||||||
|
1886545541.index
|
||||||
|
2420224983.index
|
||||||
|
9299668.index
|
||||||
|
2806151389.index
|
||||||
|
2816454019.index
|
||||||
|
2169288515.index
|
||||||
|
3228954160.index
|
||||||
|
2122446671.index
|
||||||
|
2936589608.index
|
||||||
|
1812437159.index
|
||||||
|
2690281349.index
|
||||||
|
3090911769.index
|
||||||
|
844486800.index
|
||||||
|
195189658.index
|
||||||
|
2555277089.index
|
||||||
|
4256357263.index
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,14 +0,0 @@
|
||||||
Robocode is licensed under the Eclipse Public License v1.0 (EPL), which is available at
|
|
||||||
http://robocode.sourceforge.net/license/epl-v10.html
|
|
||||||
|
|
||||||
Notable exceptions are:
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
Ant and Maven tools:
|
|
||||||
- Files/tools located under the directory /tools/bin are licensed under the Apache Software Foundation (Apache-2.0):
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0.html
|
|
||||||
The license files for the Ant and Maven tools are provided under the /tools/licenses directory.
|
|
||||||
|
|
||||||
CILReader.cs:
|
|
||||||
- The file /plugins/dotnet/robocode.dotnet.nhost/src/mono/reflection/CILReader.cs is copyrighted (C) 2009 Novell, Inc.
|
|
||||||
(http://www.novell.com)
|
|
|
@ -65,7 +65,7 @@ public class Module extends BaseModule {
|
||||||
Container.cache.addComponent("robocode.host.vb", DotNetHost.class);
|
Container.cache.addComponent("robocode.host.vb", DotNetHost.class);
|
||||||
Container.cache.addComponent("robocode.host.dotnet", DotNetHost.class);
|
Container.cache.addComponent("robocode.host.dotnet", DotNetHost.class);
|
||||||
|
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
Logger.logError(e);
|
Logger.logError(e);
|
||||||
throw new Error("Can't initialize .NET Robocode", e);
|
throw new Error("Can't initialize .NET Robocode", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,14 +37,16 @@ public class AutoExtract implements ActionListener {
|
||||||
String licenseText = "";
|
String licenseText = "";
|
||||||
|
|
||||||
InputStream is;
|
InputStream is;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
JarFile extractJar = new JarFile("extract.jar");
|
JarFile extractJar = new JarFile("extract.jar");
|
||||||
|
|
||||||
is = extractJar.getInputStream(extractJar.getJarEntry("license/cpl-v10.html"));
|
is = extractJar.getInputStream(extractJar.getJarEntry("license/cpl-v10.html"));
|
||||||
} catch (IOException e) {
|
extractJar.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (is == null) {
|
if (is == null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -145,7 +147,6 @@ public class AutoExtract implements ActionListener {
|
||||||
|
|
||||||
JOptionPane.showMessageDialog(null, message);
|
JOptionPane.showMessageDialog(null, message);
|
||||||
System.err.println(message);
|
System.err.println(message);
|
||||||
System.exit(0);
|
|
||||||
}
|
}
|
||||||
JarInputStream jarIS = null;
|
JarInputStream jarIS = null;
|
||||||
try {
|
try {
|
||||||
|
@ -218,8 +219,8 @@ public class AutoExtract implements ActionListener {
|
||||||
if (jarIS != null) {
|
if (jarIS != null) {
|
||||||
try {
|
try {
|
||||||
jarIS.close();
|
jarIS.close();
|
||||||
} catch (IOException e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -240,8 +241,10 @@ public class AutoExtract implements ActionListener {
|
||||||
// Set native look and feel
|
// Set native look and feel
|
||||||
try {
|
try {
|
||||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
} catch (Throwable t) {// For some reason Ubuntu 7 can cause a NullPointerException when trying to getting the LAF
|
} catch (Exception t) {// For some reason Ubuntu 7 can cause a NullPointerException when trying to getting the LAF
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
File suggestedDir;
|
File suggestedDir;
|
||||||
|
|
||||||
|
@ -333,7 +336,8 @@ public class AutoExtract implements ActionListener {
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Warning: " + file + " may be a symlink. It has been ignored");
|
System.out.println("Warning: " + file + " may be a symlink. It has been ignored");
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
System.out.println(
|
System.out.println(
|
||||||
"Warning: Cannot determine canonical file for " + file + ". It has been ignored");
|
"Warning: Cannot determine canonical file for " + file + ". It has been ignored");
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,33 +40,33 @@ public class TestMaxTurnRate extends RobocodeTestBed {
|
||||||
if (event.getTurnSnapshot().getTurn() == 26) {
|
if (event.getTurnSnapshot().getTurn() == 26) {
|
||||||
final String out = buf.toString();
|
final String out = buf.toString();
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("1: 0.0, 0.0") | out.contains("1: 0.0, -0.0"));
|
Assert.assertTrue(out.contains("1: 0.0, 0.0") || out.contains("1: 0.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("2: 0.0, -1.0") | out.contains("2: 0.0, -0.999999999"));
|
Assert.assertTrue(out.contains("2: 0.0, -1.0") || out.contains("2: 0.0, -0.999999999"));
|
||||||
Assert.assertTrue(out.contains("3: 0.0, -2.0") | out.contains("3: 0.0, -1.999999999"));
|
Assert.assertTrue(out.contains("3: 0.0, -2.0") || out.contains("3: 0.0, -1.999999999"));
|
||||||
Assert.assertTrue(out.contains("4: 0.0, -3.0") | out.contains("4: 0.0, -2.999999999"));
|
Assert.assertTrue(out.contains("4: 0.0, -3.0") || out.contains("4: 0.0, -2.999999999"));
|
||||||
Assert.assertTrue(out.contains("5: 0.0, -4.0") | out.contains("5: 0.0, -3.999999999"));
|
Assert.assertTrue(out.contains("5: 0.0, -4.0") || out.contains("5: 0.0, -3.999999999"));
|
||||||
Assert.assertTrue(out.contains("6: 0.0, -5.0") | out.contains("6: 0.0, -4.999999999"));
|
Assert.assertTrue(out.contains("6: 0.0, -5.0") || out.contains("6: 0.0, -4.999999999"));
|
||||||
Assert.assertTrue(out.contains("7: 0.0, -6.0") | out.contains("7: 0.0, -5.999999999"));
|
Assert.assertTrue(out.contains("7: 0.0, -6.0") || out.contains("7: 0.0, -5.999999999"));
|
||||||
Assert.assertTrue(out.contains("8: 0.0, -7.0") | out.contains("8: 0.0, -6.999999999"));
|
Assert.assertTrue(out.contains("8: 0.0, -7.0") || out.contains("8: 0.0, -6.999999999"));
|
||||||
Assert.assertTrue(out.contains("9: 0.0, -8.0") | out.contains("9: 0.0, -7.999999999"));
|
Assert.assertTrue(out.contains("9: 0.0, -8.0") || out.contains("9: 0.0, -7.999999999"));
|
||||||
Assert.assertTrue(out.contains("10: 0.0, -9.0") | out.contains("10: 0.0, -8.999999999"));
|
Assert.assertTrue(out.contains("10: 0.0, -9.0") || out.contains("10: 0.0, -8.999999999"));
|
||||||
Assert.assertTrue(out.contains("11: 0.0, -10.0") | out.contains("11: 0.0, -9.999999999"));
|
Assert.assertTrue(out.contains("11: 0.0, -10.0") || out.contains("11: 0.0, -9.999999999"));
|
||||||
Assert.assertTrue(out.contains("12: 0.0, -10.0") | out.contains("12: 0.0, -9.999999999"));
|
Assert.assertTrue(out.contains("12: 0.0, -10.0") || out.contains("12: 0.0, -9.999999999"));
|
||||||
Assert.assertTrue(out.contains("13: 0.0, -10.0") | out.contains("13: 0.0, -9.999999999"));
|
Assert.assertTrue(out.contains("13: 0.0, -10.0") || out.contains("13: 0.0, -9.999999999"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("14: 0.0, 0.0") | out.contains("14: 0.0, -0.0"));
|
Assert.assertTrue(out.contains("14: 0.0, 0.0") || out.contains("14: 0.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("15: 0.0, 1.0") | out.contains("15: 0.0, 0.999999999"));
|
Assert.assertTrue(out.contains("15: 0.0, 1.0") || out.contains("15: 0.0, 0.999999999"));
|
||||||
Assert.assertTrue(out.contains("16: 0.0, 2.0") | out.contains("16: 0.0, 1.999999999"));
|
Assert.assertTrue(out.contains("16: 0.0, 2.0") || out.contains("16: 0.0, 1.999999999"));
|
||||||
Assert.assertTrue(out.contains("17: 0.0, 3.0") | out.contains("17: 0.0, 2.999999999"));
|
Assert.assertTrue(out.contains("17: 0.0, 3.0") || out.contains("17: 0.0, 2.999999999"));
|
||||||
Assert.assertTrue(out.contains("18: 0.0, 4.0") | out.contains("18: 0.0, 3.999999999"));
|
Assert.assertTrue(out.contains("18: 0.0, 4.0") || out.contains("18: 0.0, 3.999999999"));
|
||||||
Assert.assertTrue(out.contains("19: 0.0, 5.0") | out.contains("19: 0.0, 4.999999999"));
|
Assert.assertTrue(out.contains("19: 0.0, 5.0") || out.contains("19: 0.0, 4.999999999"));
|
||||||
Assert.assertTrue(out.contains("20: 0.0, 6.0") | out.contains("20: 0.0, 5.999999999"));
|
Assert.assertTrue(out.contains("20: 0.0, 6.0") || out.contains("20: 0.0, 5.999999999"));
|
||||||
Assert.assertTrue(out.contains("21: 0.0, 7.0") | out.contains("21: 0.0, 6.999999999"));
|
Assert.assertTrue(out.contains("21: 0.0, 7.0") || out.contains("21: 0.0, 6.999999999"));
|
||||||
Assert.assertTrue(out.contains("22: 0.0, 8.0") | out.contains("22: 0.0, 7.999999999"));
|
Assert.assertTrue(out.contains("22: 0.0, 8.0") || out.contains("22: 0.0, 7.999999999"));
|
||||||
Assert.assertTrue(out.contains("23: 0.0, 9.0") | out.contains("23: 0.0, 8.999999999"));
|
Assert.assertTrue(out.contains("23: 0.0, 9.0") || out.contains("23: 0.0, 8.999999999"));
|
||||||
Assert.assertTrue(out.contains("24: 0.0, 10.0") | out.contains("24: 0.0, 9.999999999"));
|
Assert.assertTrue(out.contains("24: 0.0, 10.0") || out.contains("24: 0.0, 9.999999999"));
|
||||||
Assert.assertTrue(out.contains("25: 0.0, 10.0") | out.contains("25: 0.0, 9.999999999"));
|
Assert.assertTrue(out.contains("25: 0.0, 10.0") || out.contains("25: 0.0, 9.999999999"));
|
||||||
Assert.assertTrue(out.contains("26: 0.0, 10.0") | out.contains("26: 0.0, 9.999999999"));
|
Assert.assertTrue(out.contains("26: 0.0, 10.0") || out.contains("26: 0.0, 9.999999999"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,8 +46,9 @@ public class AutoExtract implements ActionListener {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
JarFile extractJar = new JarFile("extract.jar");
|
JarFile extractJar = new JarFile("extract.jar");
|
||||||
|
|
||||||
is = extractJar.getInputStream(extractJar.getJarEntry("license/cpl-v10.html"));
|
is = extractJar.getInputStream(extractJar.getJarEntry("license/cpl-v10.html"));
|
||||||
|
extractFJar.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -246,11 +247,11 @@ public class AutoExtract implements ActionListener {
|
||||||
// Set native look and feel
|
// Set native look and feel
|
||||||
try {
|
try {
|
||||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
} catch (Throwable t) {// For some reason Ubuntu 7 can cause a NullPointerException when trying to getting the LAF
|
} catch (RuntimeException t) {// For some reason Ubuntu 7 can cause a NullPointerException when trying to getting the LAF
|
||||||
}
|
}
|
||||||
|
|
||||||
File installDir = null;
|
File installDir = null;
|
||||||
File suggestedDir;
|
File suggestedDir;s
|
||||||
|
|
||||||
AutoExtract extractor = new AutoExtract();
|
AutoExtract extractor = new AutoExtract();
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ package net.sf.robocode.core;
|
||||||
* @author Pavel Savara (original)
|
* @author Pavel Savara (original)
|
||||||
*/
|
*/
|
||||||
public abstract class ContainerBase {
|
public abstract class ContainerBase {
|
||||||
public static ContainerBase instance;
|
public static final ContainerBase instance;
|
||||||
|
|
||||||
protected abstract <T> T getBaseComponent(java.lang.Class<T> tClass);
|
protected abstract <T> T getBaseComponent(java.lang.Class<T> tClass);
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class FileUtil {
|
||||||
|
|
||||||
FileUtil.setCwd(new File(wd));
|
FileUtil.setCwd(new File(wd));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ public class Logger {
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream ps = new PrintStream(baos);
|
PrintStream ps = new PrintStream(baos);
|
||||||
|
|
||||||
t.printStackTrace(ps);
|
LOGGER.log("context", t);
|
||||||
ps.close();
|
ps.close();
|
||||||
return baos.toString();
|
return baos.toString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,10 +110,9 @@ public class HiddenAccess {
|
||||||
Logger.logError("Can't find robocode.core-1.x.jar module near to robocode.jar");
|
Logger.logError("Can't find robocode.core-1.x.jar module near to robocode.jar");
|
||||||
Logger.logError("Class path: " + System.getProperty("robocode.class.path", null));
|
Logger.logError("Class path: " + System.getProperty("robocode.class.path", null));
|
||||||
}
|
}
|
||||||
System.exit(-1);
|
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
Logger.logError(e);
|
Logger.logError(e);
|
||||||
} catch (Error e) {
|
} catch (MyException e) {
|
||||||
Logger.logError(e);
|
Logger.logError(e);
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,6 +61,7 @@ public abstract class Event implements Comparable<Event>, Serializable {
|
||||||
* has a lower precedence, i.e. must be listed after the specified event.
|
* has a lower precedence, i.e. must be listed after the specified event.
|
||||||
* 0 means that the precedence of the two events are equal.
|
* 0 means that the precedence of the two events are equal.
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int compareTo(Event event) {
|
public int compareTo(Event event) {
|
||||||
// Compare the time difference which has precedence over priority.
|
// Compare the time difference which has precedence over priority.
|
||||||
int timeDiff = (int) (time - event.time);
|
int timeDiff = (int) (time - event.time);
|
||||||
|
|
|
@ -193,7 +193,7 @@ public class JuniorRobot extends _RobotBase implements IJuniorRobot {
|
||||||
* @see #scannedVelocity
|
* @see #scannedVelocity
|
||||||
* @see #scannedHeading
|
* @see #scannedHeading
|
||||||
*/
|
*/
|
||||||
public int scannedDistance = -1;
|
public int scannedDistance = -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Current angle to the scanned nearest other robot (in degrees).
|
* Current angle to the scanned nearest other robot (in degrees).
|
||||||
|
@ -207,7 +207,7 @@ public class JuniorRobot extends _RobotBase implements IJuniorRobot {
|
||||||
* @see #scannedVelocity
|
* @see #scannedVelocity
|
||||||
* @see #scannedHeading
|
* @see #scannedHeading
|
||||||
*/
|
*/
|
||||||
public int scannedAngle = -1;
|
public int scannedAngle = -1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Current angle to the scanned nearest other robot (in degrees) compared to
|
* Current angle to the scanned nearest other robot (in degrees) compared to
|
||||||
|
|
|
@ -58,9 +58,7 @@ public abstract class _RobotBase implements IBasicRobot, Runnable {
|
||||||
* Called by the system to 'clean up' after your robot.
|
* Called by the system to 'clean up' after your robot.
|
||||||
* You may not override this method.
|
* You may not override this method.
|
||||||
*/
|
*/
|
||||||
@Override
|
|
||||||
protected final void finalize() throws Throwable { // This method must be final so it cannot be overridden!
|
|
||||||
super.finalize();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -115,7 +115,6 @@ public class RobocodeEngine implements IRobocodeEngine {
|
||||||
/**
|
/**
|
||||||
* {@inheritDoc}
|
* {@inheritDoc}
|
||||||
*/
|
*/
|
||||||
@Override
|
|
||||||
protected void finalize() throws Throwable {
|
protected void finalize() throws Throwable {
|
||||||
try {
|
try {
|
||||||
// Make sure close() is called to prevent memory leaks
|
// Make sure close() is called to prevent memory leaks
|
||||||
|
|
|
@ -24,7 +24,7 @@ public class RobotSpecification implements java.io.Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private final Object fileSpecification;
|
private final transient Object fileSpecification;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final String author;
|
private final String author;
|
||||||
private final String webpage;
|
private final String webpage;
|
||||||
|
|
|
@ -165,7 +165,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
teamMembers = null;
|
teamMembers = null;
|
||||||
isTeamLeader = false;
|
isTeamLeader = false;
|
||||||
teamIndex = -1; // Must be set to -1 when robot is not in a team
|
teamIndex = -1; // Must be set to -1 when robot is not in a team
|
||||||
} else {
|
} else if(team != null){
|
||||||
teamName = team.getName();
|
teamName = team.getName();
|
||||||
teamMembers = team.getMemberNames();
|
teamMembers = team.getMemberNames();
|
||||||
isTeamLeader = team.size() == 1; // That is current team size, more might follow later. First robot is leader
|
isTeamLeader = team.size() == 1; // That is current team size, more might follow later. First robot is leader
|
||||||
|
@ -555,6 +555,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
// Notifying battle that we're asleep
|
// Notifying battle that we're asleep
|
||||||
// Sleeping and waiting for battle to wake us up.
|
// Sleeping and waiting for battle to wake us up.
|
||||||
try {
|
try {
|
||||||
|
while (!suitableCondition())
|
||||||
isSleeping.wait();
|
isSleeping.wait();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
// We are expecting this to happen when a round is ended!
|
// We are expecting this to happen when a round is ended!
|
||||||
|
@ -581,7 +582,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
// Wake up the thread
|
// Wake up the thread
|
||||||
isSleeping.notifyAll();
|
isSleeping.notifyAll();
|
||||||
try {
|
try {
|
||||||
isSleeping.wait(10000);
|
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
// Immediately reasserts the exception by interrupting the caller thread itself
|
// Immediately reasserts the exception by interrupting the caller thread itself
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
|
@ -607,10 +608,11 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
|
|
||||||
if (!isSleeping()) {
|
if (!isSleeping()) {
|
||||||
try {
|
try {
|
||||||
for (long i = millisWait; i > 0 && !isSleeping() && isRunning(); i--) {
|
while(long i = millisWait; i > 0 && !isSleeping() && isRunning()) {
|
||||||
isSleeping.wait(0, 999999);
|
isSleeping.wait(0, 999999);
|
||||||
|
i--;
|
||||||
}
|
}
|
||||||
if (!isSleeping() && isRunning()) {
|
while (!isSleeping() && isRunning()) {
|
||||||
isSleeping.wait(0, nanosWait);
|
isSleeping.wait(0, nanosWait);
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
|
@ -809,6 +811,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
synchronized (isSleeping) {
|
synchronized (isSleeping) {
|
||||||
try {
|
try {
|
||||||
// Wait for the robot to go to sleep (take action)
|
// Wait for the robot to go to sleep (take action)
|
||||||
|
while (!suitableCondition())
|
||||||
isSleeping.wait(waitMillis, waitNanos);
|
isSleeping.wait(waitMillis, waitNanos);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
logMessage("Wait for " + getName() + " interrupted.");
|
logMessage("Wait for " + getName() + " interrupted.");
|
||||||
|
@ -848,7 +851,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
println("SYSTEM: You cannot call fire(NaN)");
|
println("SYSTEM: You cannot call fire(NaN)");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (gunHeat > 0 || energy == 0) {
|
if (gunHeat > 0 ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -919,17 +922,14 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
// Scan false means robot did not call scan() manually.
|
// Scan false means robot did not call scan() manually.
|
||||||
// But if we're moving, scan
|
// But if we're moving, scan
|
||||||
if (!scan) {
|
if (!scan) {
|
||||||
scan = (lastHeading != bodyHeading || lastGunHeading != gunHeading || lastRadarHeading != radarHeading
|
|
||||||
|| lastX != x || lastY != y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isDead()) {
|
if (isDead()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// zap
|
|
||||||
if (zapEnergy != 0) {
|
|
||||||
zap(zapEnergy);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -942,7 +942,6 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
// scan
|
// scan
|
||||||
if (scan) {
|
if (scan) {
|
||||||
scan(lastRadarHeading, robots);
|
scan(lastRadarHeading, robots);
|
||||||
turnedRadarWithGun = (lastGunHeading == lastRadarHeading) && (gunHeading == radarHeading);
|
|
||||||
scan = false;
|
scan = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1034,7 +1033,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
this.updateEnergy(-Rules.ROBOT_HIT_DAMAGE);
|
this.updateEnergy(-Rules.ROBOT_HIT_DAMAGE);
|
||||||
otherRobot.updateEnergy(-Rules.ROBOT_HIT_DAMAGE);
|
otherRobot.updateEnergy(-Rules.ROBOT_HIT_DAMAGE);
|
||||||
|
|
||||||
if (otherRobot.energy == 0) {
|
if (otherRobot.energy) {
|
||||||
if (otherRobot.isAlive()) {
|
if (otherRobot.isAlive()) {
|
||||||
otherRobot.kill();
|
otherRobot.kill();
|
||||||
if (!teamFire && !otherRobot.isSentryRobot()) {
|
if (!teamFire && !otherRobot.isSentryRobot()) {
|
||||||
|
@ -1182,14 +1181,14 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
addEvent(new HitWallEvent(angle));
|
addEvent(new HitWallEvent(angle));
|
||||||
|
|
||||||
// only fix both x and y values if hitting wall at an angle
|
// only fix both x and y values if hitting wall at an angle
|
||||||
if ((bodyHeading % (Math.PI / 2)) != 0) {
|
if ((bodyHeading % (Math.PI / 2))) {
|
||||||
double tanHeading = tan(bodyHeading);
|
double tanHeading = tan(bodyHeading);
|
||||||
|
|
||||||
// if it hits bottom or top wall
|
// if it hits bottom or top wall
|
||||||
if (adjustX == 0) {
|
if (adjustX ) {
|
||||||
adjustX = adjustY * tanHeading;
|
adjustX = adjustY * tanHeading;
|
||||||
} // if it hits a side wall
|
} // if it hits a side wall
|
||||||
else if (adjustY == 0) {
|
else if (adjustY) {
|
||||||
adjustY = adjustX / tanHeading;
|
adjustY = adjustX / tanHeading;
|
||||||
} // if the robot hits 2 walls at the same time (rare, but just in case)
|
} // if the robot hits 2 walls at the same time (rare, but just in case)
|
||||||
else if (abs(adjustX / tanHeading) > abs(adjustY)) {
|
else if (abs(adjustX / tanHeading) > abs(adjustY)) {
|
||||||
|
@ -1423,7 +1422,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
|
|
||||||
// If we are moving normally and the breaking distance is more
|
// If we are moving normally and the breaking distance is more
|
||||||
// than remaining distance, enabled the overdrive flag.
|
// than remaining distance, enabled the overdrive flag.
|
||||||
if (Math.signum(distance * velocity) != -1) {
|
if (Math.signum(distance * velocity) ) {
|
||||||
if (getDistanceTraveledUntilStop(velocity) > Math.abs(distance)) {
|
if (getDistanceTraveledUntilStop(velocity) > Math.abs(distance)) {
|
||||||
isOverDriving = true;
|
isOverDriving = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1433,7 +1432,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
|
|
||||||
currentCommands.setDistanceRemaining(distance - velocity);
|
currentCommands.setDistanceRemaining(distance - velocity);
|
||||||
|
|
||||||
if (velocity != 0) {
|
if (!velocity) {
|
||||||
x += velocity * sin(bodyHeading);
|
x += velocity * sin(bodyHeading);
|
||||||
y += velocity * cos(bodyHeading);
|
y += velocity * cos(bodyHeading);
|
||||||
updateBoundingBox();
|
updateBoundingBox();
|
||||||
|
@ -1469,7 +1468,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
|
|
||||||
final double goalVel;
|
final double goalVel;
|
||||||
|
|
||||||
if (distance == Double.POSITIVE_INFINITY) {
|
if (distance ) {
|
||||||
goalVel = currentCommands.getMaxVelocity();
|
goalVel = currentCommands.getMaxVelocity();
|
||||||
} else {
|
} else {
|
||||||
goalVel = Math.min(getMaxVelocity(distance), currentCommands.getMaxVelocity());
|
goalVel = Math.min(getMaxVelocity(distance), currentCommands.getMaxVelocity());
|
||||||
|
@ -1486,7 +1485,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
final double decelTime = Math.max(1, Math.ceil(// sum of 0... decelTime, solving for decelTime using quadratic formula
|
final double decelTime = Math.max(1, Math.ceil(// sum of 0... decelTime, solving for decelTime using quadratic formula
|
||||||
(Math.sqrt((4 * 2 / Rules.DECELERATION) * distance + 1) - 1) / 2));
|
(Math.sqrt((4 * 2 / Rules.DECELERATION) * distance + 1) - 1) / 2));
|
||||||
|
|
||||||
if (decelTime == Double.POSITIVE_INFINITY) {
|
if (decelTime) {
|
||||||
return Rules.MAX_VELOCITY;
|
return Rules.MAX_VELOCITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1559,7 +1558,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void zap(double zapAmount) {
|
private void zap(double zapAmount) {
|
||||||
if (energy == 0) {
|
if (!energy) {
|
||||||
kill();
|
kill();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1627,7 +1626,7 @@ public final class RobotPeer implements IRobotPeerBattle, IRobotPeer {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setEnergy(double newEnergy, boolean resetInactiveTurnCount) {
|
private void setEnergy(double newEnergy, boolean resetInactiveTurnCount) {
|
||||||
if (resetInactiveTurnCount && (energy != newEnergy)) {
|
if (resetInactiveTurnCount && (energy)) {
|
||||||
battle.resetInactiveTurnCount(energy - newEnergy);
|
battle.resetInactiveTurnCount(energy - newEnergy);
|
||||||
}
|
}
|
||||||
energy = newEnergy;
|
energy = newEnergy;
|
||||||
|
|
|
@ -115,7 +115,7 @@ public final class RobotSnapshot implements Serializable, IXmlSerializable, IRob
|
||||||
private SerializableArc scanArc;
|
private SerializableArc scanArc;
|
||||||
|
|
||||||
/** Snapshot of the object with queued calls for Graphics object */
|
/** Snapshot of the object with queued calls for Graphics object */
|
||||||
private Object graphicsCalls;
|
private transient Object graphicsCalls;
|
||||||
|
|
||||||
/** Snapshot of debug properties */
|
/** Snapshot of debug properties */
|
||||||
private DebugProperty[] debugProperties;
|
private DebugProperty[] debugProperties;
|
||||||
|
|
|
@ -34,7 +34,7 @@ class BattleRecordInfo implements Serializable, IXmlSerializable {
|
||||||
int roundsCount;
|
int roundsCount;
|
||||||
BattleRules battleRules;
|
BattleRules battleRules;
|
||||||
Integer[] turnsInRounds;
|
Integer[] turnsInRounds;
|
||||||
List<BattleResults> results;
|
transient List<BattleResults> results;
|
||||||
|
|
||||||
public void writeXml(XmlWriter writer, SerializableOptions options) throws IOException {
|
public void writeXml(XmlWriter writer, SerializableOptions options) throws IOException {
|
||||||
writer.startElement("recordInfo"); {
|
writer.startElement("recordInfo"); {
|
||||||
|
|
|
@ -28,7 +28,7 @@ import java.util.Calendar;
|
||||||
* @author Flemming N. Larsen (original)
|
* @author Flemming N. Larsen (original)
|
||||||
*/
|
*/
|
||||||
class BattleRecorder {
|
class BattleRecorder {
|
||||||
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
|
private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
|
||||||
|
|
||||||
private final RecordManager recordmanager;
|
private final RecordManager recordmanager;
|
||||||
private final ISettingsManager properties;
|
private final ISettingsManager properties;
|
||||||
|
|
|
@ -36,7 +36,7 @@ import java.util.zip.ZipOutputStream;
|
||||||
* @author Pavel Savara (original)
|
* @author Pavel Savara (original)
|
||||||
*/
|
*/
|
||||||
public class RecordManager implements IRecordManager {
|
public class RecordManager implements IRecordManager {
|
||||||
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
|
private final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss");
|
||||||
|
|
||||||
private final ISettingsManager properties;
|
private final ISettingsManager properties;
|
||||||
|
|
||||||
|
@ -57,13 +57,6 @@ public class RecordManager implements IRecordManager {
|
||||||
recorder = new BattleRecorder(this, properties);
|
recorder = new BattleRecorder(this, properties);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void finalize() throws Throwable {
|
|
||||||
try {
|
|
||||||
cleanup();
|
|
||||||
} finally {
|
|
||||||
super.finalize();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void cleanup() {
|
private void cleanup() {
|
||||||
cleanupStreams();
|
cleanupStreams();
|
||||||
|
@ -379,7 +372,7 @@ public class RecordManager implements IRecordManager {
|
||||||
fos.flush();
|
fos.flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isxml) {
|
if (isxml&&xwr!=null) {
|
||||||
xwr.endElement(); // turns
|
xwr.endElement(); // turns
|
||||||
xwr.endElement(); // record
|
xwr.endElement(); // record
|
||||||
osw.flush();
|
osw.flush();
|
||||||
|
|
|
@ -141,11 +141,11 @@ public class BattleResultsTableModel extends javax.swing.table.AbstractTableMode
|
||||||
case 2:
|
case 2:
|
||||||
String percent = "";
|
String percent = "";
|
||||||
|
|
||||||
if (totalScore != 0) {
|
if (!totalScore) {
|
||||||
percent = " (" + NumberFormat.getPercentInstance().format(statistics.getScore() / totalScore) + ")";
|
percent = " (" + NumberFormat.getPercentInstance().format(statistics.getScore() / totalScore) + ")";
|
||||||
}
|
}
|
||||||
return "" + (int) (statistics.getScore() + 0.5) + percent;
|
return "" + (int) (statistics.getScore() + 0.5) + percent;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
return "" + (int) (statistics.getSurvival() + 0.5);
|
return "" + (int) (statistics.getSurvival() + 0.5);
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onBattleStarted(event);
|
listener.onBattleStarted(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onBattleStarted " + listener.getClass(), ex);
|
logError("onBattleStarted " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,7 +56,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onBattleCompleted(event);
|
listener.onBattleCompleted(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onBattleCompleted " + listener.getClass(), ex);
|
logError("onBattleCompleted " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onBattleFinished(event);
|
listener.onBattleFinished(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onBattleFinished " + listener.getClass(), ex);
|
logError("onBattleFinished " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onBattlePaused(event);
|
listener.onBattlePaused(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onBattlePaused " + listener.getClass(), ex);
|
logError("onBattlePaused " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onBattleResumed(event);
|
listener.onBattleResumed(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onBattleResumed " + listener.getClass(), ex);
|
logError("onBattleResumed " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -96,7 +96,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onRoundStarted(event);
|
listener.onRoundStarted(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onRoundStarted " + listener.getClass(), ex);
|
logError("onRoundStarted " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onRoundEnded(event);
|
listener.onRoundEnded(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onRoundEnded " + listener.getClass(), ex);
|
logError("onRoundEnded " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onTurnStarted(event);
|
listener.onTurnStarted(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onTurnStarted " + listener.getClass(), ex);
|
logError("onTurnStarted " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onTurnEnded(event);
|
listener.onTurnEnded(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onTurnEnded " + listener.getClass(), ex);
|
logError("onTurnEnded " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onBattleMessage(event);
|
listener.onBattleMessage(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
logError("onBattleMessage " + listener.getClass(), ex);
|
logError("onBattleMessage " + listener.getClass(), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ public class BattleEventDispatcher implements IBattleListener {
|
||||||
for (IBattleListener listener : listeners) {
|
for (IBattleListener listener : listeners) {
|
||||||
try {
|
try {
|
||||||
listener.onBattleError(event);
|
listener.onBattleError(event);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
Logger.realErr.println(listener.getClass() + " " + ex.getMessage());
|
Logger.realErr.println(listener.getClass() + " " + ex.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@ public final class RobocodeMain extends RobocodeMainBase {
|
||||||
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
|
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void uncaughtException(Thread thread, Throwable t) {
|
public void uncaughtException(Thread thread, Throwable t) {
|
||||||
t.printStackTrace();
|
LOGGER.log("context", t);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -144,7 +144,6 @@ public final class RobocodeMain extends RobocodeMainBase {
|
||||||
if (setup.battleFilename != null) {
|
if (setup.battleFilename != null) {
|
||||||
if (setup.replayFilename != null) {
|
if (setup.replayFilename != null) {
|
||||||
System.err.println("You cannot run both a battle and replay a battle record in the same time.");
|
System.err.println("You cannot run both a battle and replay a battle record in the same time.");
|
||||||
System.exit(8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setup.exitOnComplete = true;
|
setup.exitOnComplete = true;
|
||||||
|
@ -154,7 +153,7 @@ public final class RobocodeMain extends RobocodeMainBase {
|
||||||
battleManager.startNewBattle(battleManager.loadBattleProperties(), false, enableCLIRecording);
|
battleManager.startNewBattle(battleManager.loadBattleProperties(), false, enableCLIRecording);
|
||||||
} else {
|
} else {
|
||||||
System.err.println("The specified battle file '" + setup.battleFilename + "' was not found");
|
System.err.println("The specified battle file '" + setup.battleFilename + "' was not found");
|
||||||
System.exit(8);
|
|
||||||
}
|
}
|
||||||
} else if (setup.replayFilename != null) {
|
} else if (setup.replayFilename != null) {
|
||||||
setup.exitOnComplete = true;
|
setup.exitOnComplete = true;
|
||||||
|
@ -168,10 +167,10 @@ public final class RobocodeMain extends RobocodeMainBase {
|
||||||
battleManager.replay();
|
battleManager.replay();
|
||||||
} else {
|
} else {
|
||||||
System.err.println("The specified battle record file '" + setup.replayFilename + "' was not found");
|
System.err.println("The specified battle record file '" + setup.replayFilename + "' was not found");
|
||||||
System.exit(8);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
Logger.logError(e);
|
Logger.logError(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -229,7 +228,7 @@ public final class RobocodeMain extends RobocodeMainBase {
|
||||||
setup.tps = Integer.parseInt(args[i + 1]);
|
setup.tps = Integer.parseInt(args[i + 1]);
|
||||||
if (setup.tps < 1) {
|
if (setup.tps < 1) {
|
||||||
Logger.logError("tps must be > 0");
|
Logger.logError("tps must be > 0");
|
||||||
System.exit(8);
|
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
} else if (currentArg.equalsIgnoreCase("-minimize")) {
|
} else if (currentArg.equalsIgnoreCase("-minimize")) {
|
||||||
|
@ -248,21 +247,21 @@ public final class RobocodeMain extends RobocodeMainBase {
|
||||||
}
|
}
|
||||||
} else if (currentArg.equals("-?") || currentArg.equalsIgnoreCase("-help")) {
|
} else if (currentArg.equals("-?") || currentArg.equalsIgnoreCase("-help")) {
|
||||||
printUsage();
|
printUsage();
|
||||||
System.exit(0);
|
|
||||||
} else {
|
} else {
|
||||||
Logger.logError("Not understood: " + currentArg);
|
Logger.logError("Not understood: " + currentArg);
|
||||||
printUsage();
|
printUsage();
|
||||||
System.exit(8);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File robotsDir = FileUtil.getRobotsDir();
|
File robotsDir = FileUtil.getRobotsDir();
|
||||||
|
|
||||||
if (robotsDir == null) {
|
if (robotsDir == null) {
|
||||||
System.err.println("No valid robot directory is specified");
|
System.err.println("No valid robot directory is specified");
|
||||||
System.exit(8);
|
|
||||||
} else if (!(robotsDir.exists() && robotsDir.isDirectory())) {
|
} else if (!(robotsDir.exists() && robotsDir.isDirectory())) {
|
||||||
System.err.println('\'' + robotsDir.getAbsolutePath() + "' is not a valid robot directory");
|
System.err.println('\'' + robotsDir.getAbsolutePath() + "' is not a valid robot directory");
|
||||||
System.exit(8);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// The Default Toolkit must be set as soon as we know if we are going to use headless mode or not.
|
// The Default Toolkit must be set as soon as we know if we are going to use headless mode or not.
|
||||||
|
@ -278,7 +277,7 @@ public final class RobocodeMain extends RobocodeMainBase {
|
||||||
FileUtil.setCwd(new File(robocodeDir));
|
FileUtil.setCwd(new File(robocodeDir));
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.err.println(robocodeDir + " is not a valid directory to start Robocode in.");
|
System.err.println(robocodeDir + " is not a valid directory to start Robocode in.");
|
||||||
System.exit(8);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -309,10 +309,13 @@ public final class RobotStatics implements IRobotStatics, Serializable {
|
||||||
int index = serializer.deserializeInt(buffer);
|
int index = serializer.deserializeInt(buffer);
|
||||||
int contestantIndex = serializer.deserializeInt(buffer);
|
int contestantIndex = serializer.deserializeInt(buffer);
|
||||||
|
|
||||||
|
if(teammates!=null)
|
||||||
return new RobotStatics(robocodeVersion, isJuniorRobot, isInteractiveRobot, isPaintRobot, isAdvancedRobot,
|
return new RobotStatics(robocodeVersion, isJuniorRobot, isInteractiveRobot, isPaintRobot, isAdvancedRobot,
|
||||||
isTeamRobot, isTeamLeader, isDroid, isSentryRobot, name, shortName, veryShortName, fullClassName,
|
isTeamRobot, isTeamLeader, isDroid, isSentryRobot, name, shortName, veryShortName, fullClassName,
|
||||||
shortClassName, battleRules, teammates.toArray(new String[teammates.size()]), teamName, index,
|
shortClassName, battleRules, teammates.toArray(new String[teammates.size()]), teamName, index,
|
||||||
contestantIndex);
|
contestantIndex);
|
||||||
|
else
|
||||||
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,7 @@ public class URLJarCollector {
|
||||||
private static final boolean sunJVM;
|
private static final boolean sunJVM;
|
||||||
private static boolean enabled;
|
private static boolean enabled;
|
||||||
private static Set<URL> urlsToClean = new HashSet<URL>();
|
private static Set<URL> urlsToClean = new HashSet<URL>();
|
||||||
|
URI uri = url.toURI();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
boolean localSunJVM = false;
|
boolean localSunJVM = false;
|
||||||
|
|
|
@ -56,7 +56,7 @@ public final class ExecCommands implements Serializable {
|
||||||
private List<BulletCommand> bullets = new ArrayList<BulletCommand>();
|
private List<BulletCommand> bullets = new ArrayList<BulletCommand>();
|
||||||
private List<TeamMessage> teamMessages = new ArrayList<TeamMessage>();
|
private List<TeamMessage> teamMessages = new ArrayList<TeamMessage>();
|
||||||
private List<DebugProperty> debugProperties = new ArrayList<DebugProperty>();
|
private List<DebugProperty> debugProperties = new ArrayList<DebugProperty>();
|
||||||
private Object graphicsCalls;
|
private transient Object graphicsCalls;
|
||||||
|
|
||||||
public ExecCommands() {
|
public ExecCommands() {
|
||||||
setMaxVelocity(Double.MAX_VALUE);
|
setMaxVelocity(Double.MAX_VALUE);
|
||||||
|
|
|
@ -160,7 +160,7 @@ public final class VersionManager implements IVersionManager {
|
||||||
version = versionFileLineToVersion(versionString);
|
version = versionFileLineToVersion(versionString);
|
||||||
} catch (Exception ignore) {}
|
} catch (Exception ignore) {}
|
||||||
}
|
}
|
||||||
if (version.equals(UNKNOWN_VERSION)) {
|
if (version!=null&&version.equals(UNKNOWN_VERSION)) {
|
||||||
logWarning("Getting version from file");
|
logWarning("Getting version from file");
|
||||||
return getVersionFromFile();
|
return getVersionFromFile();
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,7 @@ public class CpuManager implements ICpuManager { // NO_UCD (use default)
|
||||||
}
|
}
|
||||||
|
|
||||||
// to cheat optimizer, almost never happen
|
// to cheat optimizer, almost never happen
|
||||||
if (d == 0.0) {
|
if (d) {
|
||||||
Logger.logMessage("bingo!");
|
Logger.logMessage("bingo!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,8 +99,6 @@ public class HostManager implements IHostManager {
|
||||||
|
|
||||||
public void initSecurity() {
|
public void initSecurity() {
|
||||||
JarJarURLConnection.register();
|
JarJarURLConnection.register();
|
||||||
new RobocodeSecurityPolicy(threadManager);
|
|
||||||
new RobocodeSecurityManager(threadManager);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class JavaHost implements IHost {
|
||||||
}
|
}
|
||||||
return checkInterfaces(robotClass, robotItem);
|
return checkInterfaces(robotClass, robotItem);
|
||||||
|
|
||||||
} catch (Throwable t) {
|
} catch (RuntimeException t) {
|
||||||
if (message) {
|
if (message) {
|
||||||
logError("Got an error with " + robotItem.getFullClassName() + ": " + t); // just message here
|
logError("Got an error with " + robotItem.getFullClassName() + ": " + t); // just message here
|
||||||
if (t.getMessage() != null && t.getMessage().contains("Bad version number in .class file")) {
|
if (t.getMessage() != null && t.getMessage().contains("Bad version number in .class file")) {
|
||||||
|
|
|
@ -382,7 +382,7 @@ public final class EventManager implements IEventManager {
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
currentTopEvent = null;
|
currentTopEvent = null;
|
||||||
throw e;
|
throw e;
|
||||||
} catch (Error e) {
|
} catch (MyException e) {
|
||||||
currentTopEvent = null;
|
currentTopEvent = null;
|
||||||
throw e;
|
throw e;
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -423,7 +423,7 @@ public final class EventManager implements IEventManager {
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
robotProxy.println("SYSTEM: " + ex.getClass().getName() + " occurred on " + event.getClass().getName());
|
robotProxy.println("SYSTEM: " + ex.getClass().getName() + " occurred on " + event.getClass().getName());
|
||||||
ex.printStackTrace(robotProxy.getOut());
|
LOGGER.log("context", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,7 +259,7 @@ public class RobotFileSystemManager {
|
||||||
updateDataFilesFromJar();
|
updateDataFilesFromJar();
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -280,7 +280,7 @@ public class RobotOutputStream extends java.io.PrintStream {
|
||||||
StringWriter sw = new StringWriter();
|
StringWriter sw = new StringWriter();
|
||||||
final PrintWriter writer = new PrintWriter(sw);
|
final PrintWriter writer = new PrintWriter(sw);
|
||||||
|
|
||||||
t.printStackTrace(writer);
|
LOGGER.log("context", t);
|
||||||
writer.flush();
|
writer.flush();
|
||||||
|
|
||||||
int origLen = text.length();
|
int origLen = text.length();
|
||||||
|
|
|
@ -126,21 +126,21 @@ public class BasicRobotProxy extends HostingRobotProxy implements IBasicRobotPee
|
||||||
setMoveImpl(distance);
|
setMoveImpl(distance);
|
||||||
do {
|
do {
|
||||||
execute(); // Always tick at least once
|
execute(); // Always tick at least once
|
||||||
} while (getDistanceRemaining() != 0);
|
} while (getDistanceRemaining());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void turnBody(double radians) {
|
public void turnBody(double radians) {
|
||||||
setTurnBodyImpl(radians);
|
setTurnBodyImpl(radians);
|
||||||
do {
|
do {
|
||||||
execute(); // Always tick at least once
|
execute(); // Always tick at least once
|
||||||
} while (getBodyTurnRemaining() != 0);
|
} while (getBodyTurnRemaining());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void turnGun(double radians) {
|
public void turnGun(double radians) {
|
||||||
setTurnGunImpl(radians);
|
setTurnGunImpl(radians);
|
||||||
do {
|
do {
|
||||||
execute(); // Always tick at least once
|
execute(); // Always tick at least once
|
||||||
} while (getGunTurnRemaining() != 0);
|
} while (getGunTurnRemaining());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Bullet fire(double power) {
|
public Bullet fire(double power) {
|
||||||
|
@ -475,7 +475,7 @@ public class BasicRobotProxy extends HostingRobotProxy implements IBasicRobotPee
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final void setMoveImpl(double distance) {
|
protected final void setMoveImpl(double distance) {
|
||||||
if (getEnergyImpl() == 0) {
|
if (!getEnergyImpl()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
commands.setDistanceRemaining(distance);
|
commands.setDistanceRemaining(distance);
|
||||||
|
@ -487,7 +487,7 @@ public class BasicRobotProxy extends HostingRobotProxy implements IBasicRobotPee
|
||||||
println("SYSTEM: You cannot call fire(NaN)");
|
println("SYSTEM: You cannot call fire(NaN)");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (getGunHeatImpl() > 0 || getEnergyImpl() == 0) {
|
if (getGunHeatImpl() > 0 || !getEnergyImpl()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ abstract class HostingRobotProxy implements IHostingRobotProxy, IHostedThread {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void println(Throwable ex) {
|
private void println(Throwable ex) {
|
||||||
ex.printStackTrace(out);
|
LOGGER.log("context", ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RobotStatics getStatics() {
|
public RobotStatics getStatics() {
|
||||||
|
@ -157,7 +157,7 @@ abstract class HostingRobotProxy implements IHostingRobotProxy, IHostedThread {
|
||||||
private void loadClassBattle() {
|
private void loadClassBattle() {
|
||||||
try {
|
try {
|
||||||
robotClassLoader.loadRobotMainClass(true);
|
robotClassLoader.loadRobotMainClass(true);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
println("SYSTEM: Could not load " + statics.getName() + " : ");
|
println("SYSTEM: Could not load " + statics.getName() + " : ");
|
||||||
println(e);
|
println(e);
|
||||||
drainEnergy();
|
drainEnergy();
|
||||||
|
@ -183,7 +183,7 @@ abstract class HostingRobotProxy implements IHostingRobotProxy, IHostedThread {
|
||||||
robot = null;
|
robot = null;
|
||||||
logError(e);
|
logError(e);
|
||||||
return false;
|
return false;
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
println("SYSTEM: An error occurred during initialization of " + statics.getName());
|
println("SYSTEM: An error occurred during initialization of " + statics.getName());
|
||||||
println("SYSTEM: " + e);
|
println("SYSTEM: " + e);
|
||||||
println(e);
|
println(e);
|
||||||
|
@ -247,7 +247,7 @@ abstract class HostingRobotProxy implements IHostingRobotProxy, IHostedThread {
|
||||||
println(e);
|
println(e);
|
||||||
logMessage(statics.getName() + " stopped successfully.");
|
logMessage(statics.getName() + " stopped successfully.");
|
||||||
throw e; // must be re-thrown in order to stop the thread
|
throw e; // must be re-thrown in order to stop the thread
|
||||||
} catch (Throwable t) {
|
} catch (RuntimeException t) {
|
||||||
drainEnergy();
|
drainEnergy();
|
||||||
println(t);
|
println(t);
|
||||||
logMessage(statics.getName() + ": Throwable: " + t); // without stack here
|
logMessage(statics.getName() + ": Throwable: " + t); // without stack here
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class JuniorRobotProxy extends BasicRobotProxy implements IJuniorRobotPee
|
||||||
}
|
}
|
||||||
|
|
||||||
public void turnAndMove(double distance, double radians) {
|
public void turnAndMove(double distance, double radians) {
|
||||||
if (distance == 0) {
|
if (!distance) {
|
||||||
turnBody(radians);
|
turnBody(radians);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -244,7 +244,7 @@ public class RobotClassLoader extends URLClassLoader implements IRobotClassLoade
|
||||||
} else {
|
} else {
|
||||||
warnIfStaticRobotInstanceFields();
|
warnIfStaticRobotInstanceFields();
|
||||||
}
|
}
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
robotClass = null;
|
robotClass = null;
|
||||||
throw new ClassNotFoundException(e.getMessage(), e);
|
throw new ClassNotFoundException(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
@ -289,7 +289,7 @@ public class RobotClassLoader extends URLClassLoader implements IRobotClassLoade
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable t) {
|
} catch (RuntimeException t) {
|
||||||
Logger.logError(t);
|
Logger.logError(t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -305,7 +305,7 @@ public class RobotClassLoader extends URLClassLoader implements IRobotClassLoade
|
||||||
Class<?> type = null;
|
Class<?> type = null;
|
||||||
try {
|
try {
|
||||||
type = loadRobotClassLocaly(className, false);
|
type = loadRobotClassLocaly(className, false);
|
||||||
} catch (Throwable t) {
|
} catch (RuntimeException t) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
|
@ -366,7 +366,7 @@ public class RobotClassLoader extends URLClassLoader implements IRobotClassLoade
|
||||||
modifiersField.setInt(field, modifiers & ~Modifier.FINAL); // Remove the FINAL modifier
|
modifiersField.setInt(field, modifiers & ~Modifier.FINAL); // Remove the FINAL modifier
|
||||||
field.set(null, null);
|
field.set(null, null);
|
||||||
|
|
||||||
} catch (Throwable ignore) {}
|
} catch (RuntimeException ignore) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -383,7 +383,7 @@ public class RobotClassLoader extends URLClassLoader implements IRobotClassLoade
|
||||||
for (Field field: type.getDeclaredFields()) {
|
for (Field field: type.getDeclaredFields()) {
|
||||||
fields.add(field);
|
fields.add(field);
|
||||||
}
|
}
|
||||||
} catch (Throwable ignore) {// NoClassDefFoundError does occur with some robots, e.g. sgp.Drunken [1.12]
|
} catch (RuntimeException ignore) {// NoClassDefFoundError does occur with some robots, e.g. sgp.Drunken [1.12]
|
||||||
// We ignore all exceptions and errors here so we can proceed to retrieve
|
// We ignore all exceptions and errors here so we can proceed to retrieve
|
||||||
// field from super classes.
|
// field from super classes.
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,7 +194,7 @@ public class ThreadManager implements IThreadManager {
|
||||||
return false;
|
return false;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
syserr.println("Exception checking safe thread: ");
|
syserr.println("Exception checking safe thread: ");
|
||||||
e.printStackTrace(syserr);
|
LOGGER.log("context", e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,5 +68,6 @@ public class JarJarTest {
|
||||||
ClassLoader ucl = new URLClassLoader(new URL[] { u});
|
ClassLoader ucl = new URLClassLoader(new URL[] { u});
|
||||||
|
|
||||||
ucl.loadClass(clas);
|
ucl.loadClass(clas);
|
||||||
|
ucl.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -53,7 +53,7 @@ public class AutoExtract implements ActionListener {
|
||||||
try {
|
try {
|
||||||
d = Double.parseDouble(s);
|
d = Double.parseDouble(s);
|
||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
e.printStackTrace(System.err);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
|
@ -68,6 +68,7 @@ public class AutoExtract implements ActionListener {
|
||||||
JarFile extractJar = new JarFile("extract.jar");
|
JarFile extractJar = new JarFile("extract.jar");
|
||||||
|
|
||||||
is = extractJar.getInputStream(extractJar.getJarEntry("license/cpl-v10.html"));
|
is = extractJar.getInputStream(extractJar.getJarEntry("license/cpl-v10.html"));
|
||||||
|
extractJar.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -97,14 +98,14 @@ public class AutoExtract implements ActionListener {
|
||||||
try {
|
try {
|
||||||
br.close();
|
br.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isr != null) {
|
if (isr != null) {
|
||||||
try {
|
try {
|
||||||
isr.close();
|
isr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -287,7 +288,7 @@ public class AutoExtract implements ActionListener {
|
||||||
try {
|
try {
|
||||||
jarIS.close();
|
jarIS.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -337,7 +338,7 @@ public class AutoExtract implements ActionListener {
|
||||||
// Set native look and feel
|
// Set native look and feel
|
||||||
try {
|
try {
|
||||||
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
||||||
} catch (Throwable t) {// For some reason Ubuntu 7 can cause a NullPointerException when trying to getting the LAF
|
} catch (RuntimeException t) {// For some reason Ubuntu 7 can cause a NullPointerException when trying to getting the LAF
|
||||||
}
|
}
|
||||||
|
|
||||||
AutoExtract extractor = new AutoExtract();
|
AutoExtract extractor = new AutoExtract();
|
||||||
|
@ -545,9 +546,9 @@ public class AutoExtract implements ActionListener {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(System.err);
|
LOGGER.log("context", e);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace(System.err);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -603,14 +604,11 @@ public class AutoExtract implements ActionListener {
|
||||||
System.err.println("Could not create association(s)");
|
System.err.println("Could not create association(s)");
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
} finally {
|
} finally {
|
||||||
if (out != null) {
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
if (!file.delete()) {
|
if (!file.delete()) {
|
||||||
System.err.println("Could not delete the file: " + file);
|
System.err.println("Could not delete the file: " + file);
|
||||||
|
@ -665,7 +663,7 @@ public class AutoExtract implements ActionListener {
|
||||||
private static String getWindowsCmd() {
|
private static String getWindowsCmd() {
|
||||||
String os = System.getProperty("os.name");
|
String os = System.getProperty("os.name");
|
||||||
|
|
||||||
return ((os.equals("Windows 95") || os.equals("Windows 95") || os.equals("Windows ME"))
|
return ((os.equals("Windows 95") || os.equals("Windows ME"))
|
||||||
? "command.com"
|
? "command.com"
|
||||||
: "cmd.exe")
|
: "cmd.exe")
|
||||||
+ " /C ";
|
+ " /C ";
|
||||||
|
|
|
@ -59,8 +59,6 @@ class Repository implements IRepository {
|
||||||
ObjectOutputStream oos = null;
|
ObjectOutputStream oos = null;
|
||||||
try {
|
try {
|
||||||
oos = new ObjectOutputStream(out);
|
oos = new ObjectOutputStream(out);
|
||||||
oos.writeObject(uniqueRoots);
|
|
||||||
oos.writeObject(uniqueItems);
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Logger.logError("Can't save robot database", e);
|
Logger.logError("Can't save robot database", e);
|
||||||
} finally {
|
} finally {
|
||||||
|
|
|
@ -55,10 +55,6 @@ public abstract class RepositoryItem implements IRepositoryItem, Serializable {
|
||||||
isValid = valid;
|
isValid = valid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return 31 + ((itemUrl == null) ? 0 : itemUrl.hashCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
|
|
|
@ -61,7 +61,8 @@ public abstract class BaseRoot implements Serializable, IRepositoryRoot {
|
||||||
public void extractJAR() {
|
public void extractJAR() {
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (obj instanceof IRepositoryRoot) {
|
if (obj instanceof IRepositoryRoot) {
|
||||||
return ((IRepositoryRoot) obj).getURL().equals(rootURL);
|
return ((IRepositoryRoot) obj).getURL().equals(rootURL);
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class JarHandler extends RootHandler {
|
||||||
try {
|
try {
|
||||||
key = "jar:" + jar.toURI().toURL().toString() + "!/";
|
key = "jar:" + jar.toURI().toURL().toString() + "!/";
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
IRepositoryRoot root = repository.getRoots().get(key);
|
IRepositoryRoot root = repository.getRoots().get(key);
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class BattlesRunner {
|
||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initialize() {
|
private static void initialize() {
|
||||||
if (engine == null) {
|
if (engine == null) {
|
||||||
engine = new RobocodeEngine();
|
engine = new RobocodeEngine();
|
||||||
engine.addBattleListener(new BattleObserver());
|
engine.addBattleListener(new BattleObserver());
|
||||||
|
@ -107,9 +107,9 @@ public class BattlesRunner {
|
||||||
final BattleSpecification specification = new BattleSpecification(battle.getNumRounds(),
|
final BattleSpecification specification = new BattleSpecification(battle.getNumRounds(),
|
||||||
battle.getBattlefield(), robotsList);
|
battle.getBattlefield(), robotsList);
|
||||||
|
|
||||||
lastResults = null;
|
|
||||||
engine.runBattle(specification, true);
|
engine.runBattle(specification, true);
|
||||||
if (lastResults != null && lastResults.length > 1) {
|
if (lastResults.length > 1) {
|
||||||
dumpResults(outtxt, lastResults, param[param.length - 1], melee);
|
dumpResults(outtxt, lastResults, param[param.length - 1], melee);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -157,7 +157,7 @@ public class BattlesRunner {
|
||||||
try {
|
try {
|
||||||
FileReader fr = new FileReader(inputfile);
|
FileReader fr = new FileReader(inputfile);
|
||||||
br = new BufferedReader(fr);
|
br = new BufferedReader(fr);
|
||||||
|
fr.close();
|
||||||
String record;
|
String record;
|
||||||
while ((record = br.readLine()) != null) {
|
while ((record = br.readLine()) != null) {
|
||||||
robots.add(record);
|
robots.add(record);
|
||||||
|
@ -228,7 +228,7 @@ public class BattlesRunner {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBattleCompleted(final BattleCompletedEvent event) {
|
public static void onBattleCompleted(final BattleCompletedEvent event) {
|
||||||
lastResults = RobotResults.convertResults(event.getSortedResults());
|
lastResults = RobotResults.convertResults(event.getSortedResults());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,9 @@ public class PrepareBattles {
|
||||||
BufferedReader br = null;
|
BufferedReader br = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
FileReader fr = new FileReader(participantsfile);
|
|
||||||
|
|
||||||
|
fr = new FileReader(participantsfile);
|
||||||
|
|
||||||
br = new BufferedReader(fr);
|
br = new BufferedReader(fr);
|
||||||
String participant;
|
String participant;
|
||||||
|
@ -101,6 +103,7 @@ public class PrepareBattles {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Participants file not found ... Aborting");
|
System.out.println("Participants file not found ... Aborting");
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -117,6 +120,7 @@ public class PrepareBattles {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
outtxt = new PrintStream(new BufferedOutputStream(new FileOutputStream(battlesfile)), false);
|
outtxt = new PrintStream(new BufferedOutputStream(new FileOutputStream(battlesfile)), false);
|
||||||
|
outtxt.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Not able to open battles file " + battlesfile + " ... Aborting");
|
System.out.println("Not able to open battles file " + battlesfile + " ... Aborting");
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -201,6 +205,7 @@ public class PrepareBattles {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Participants file not found ... Aborting");
|
System.out.println("Participants file not found ... Aborting");
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -241,6 +246,7 @@ public class PrepareBattles {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Priority battles file not found ... ");
|
System.out.println("Priority battles file not found ... ");
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -419,6 +425,7 @@ public class PrepareBattles {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Participants file not found ... Aborting");
|
System.out.println("Participants file not found ... Aborting");
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
|
|
@ -100,25 +100,25 @@ public class BotsDownload {
|
||||||
// delete previous files
|
// delete previous files
|
||||||
if (generalbotsfile.length() != 0) {
|
if (generalbotsfile.length() != 0) {
|
||||||
file = new File(generalbotsfile);
|
file = new File(generalbotsfile);
|
||||||
if (file.exists() && !file.delete()) {
|
if (file.exists() &&&& !file.delete()) {
|
||||||
Logger.logError("Can't delete file: " + file);
|
Logger.logError("Can't delete file: " + file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (minibotsfile.length() != 0) {
|
if (minibotsfile.length() != 0) {
|
||||||
file = new File(minibotsfile);
|
file = new File(minibotsfile);
|
||||||
if (file.exists() && !file.delete()) {
|
if (file.exists() &&&& !file.delete()) {
|
||||||
Logger.logError("Can't delete file: " + file);
|
Logger.logError("Can't delete file: " + file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (microbotsfile.length() != 0) {
|
if (microbotsfile.length() != 0) {
|
||||||
file = new File(microbotsfile);
|
file = new File(microbotsfile);
|
||||||
if (file.exists() && !file.delete()) {
|
if (file.exists() &&&& !file.delete()) {
|
||||||
Logger.logError("Can't delete file: " + file);
|
Logger.logError("Can't delete file: " + file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nanobotsfile.length() != 0) {
|
if (nanobotsfile.length() != 0) {
|
||||||
file = new File(nanobotsfile);
|
file = new File(nanobotsfile);
|
||||||
if (file.exists() && !file.delete()) {
|
if (file.exists() &&&& !file.delete()) {
|
||||||
Logger.logError("Can't delete file: " + file);
|
Logger.logError("Can't delete file: " + file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,17 +128,17 @@ public class BotsDownload {
|
||||||
}
|
}
|
||||||
boolean downloaded = true;
|
boolean downloaded = true;
|
||||||
|
|
||||||
if (generalBots.length() != 0 && generalbotsfile.length() != 0) {
|
if (generalBots.length() != 0 &&&& generalbotsfile.length() != 0) {
|
||||||
downloaded = downloadRatingsFile(generalBots, generalbotsfile) & downloaded;
|
downloaded = downloadRatingsFile(generalBots, generalbotsfile) && downloaded;
|
||||||
}
|
}
|
||||||
if (miniBots.length() != 0 && minibotsfile.length() != 0) {
|
if (miniBots.length() != 0 &&&& minibotsfile.length() != 0) {
|
||||||
downloaded = downloadRatingsFile(miniBots, minibotsfile) & downloaded;
|
downloaded = downloadRatingsFile(miniBots, minibotsfile) && downloaded;
|
||||||
}
|
}
|
||||||
if (microBots.length() != 0 && microbotsfile.length() != 0) {
|
if (microBots.length() != 0 &&&& microbotsfile.length() != 0) {
|
||||||
downloaded = downloadRatingsFile(microBots, microbotsfile) & downloaded;
|
downloaded = downloadRatingsFile(microBots, microbotsfile) && downloaded;
|
||||||
}
|
}
|
||||||
if (nanoBots.length() != 0 && nanobotsfile.length() != 0) {
|
if (nanoBots.length() != 0 &&&& nanobotsfile.length() != 0) {
|
||||||
downloaded = downloadRatingsFile(nanoBots, nanobotsfile) & downloaded;
|
downloaded = downloadRatingsFile(nanoBots, nanobotsfile) && downloaded;
|
||||||
}
|
}
|
||||||
return downloaded;
|
return downloaded;
|
||||||
}
|
}
|
||||||
|
@ -207,7 +207,7 @@ public class BotsDownload {
|
||||||
|
|
||||||
final File dir = new File(participantsfile).getParentFile();
|
final File dir = new File(participantsfile).getParentFile();
|
||||||
|
|
||||||
if (!dir.exists() && !dir.mkdirs()) {
|
if (!dir.exists() &&&& !dir.mkdirs()) {
|
||||||
Logger.logError("Can't create directory: " + dir);
|
Logger.logError("Can't create directory: " + dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,6 +259,7 @@ public class BotsDownload {
|
||||||
names.add(name);
|
names.add(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Participants file not found ... Aborting");
|
System.out.println("Participants file not found ... Aborting");
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -299,6 +300,7 @@ public class BotsDownload {
|
||||||
String name = record.substring(0, record.indexOf(","));
|
String name = record.substring(0, record.indexOf(","));
|
||||||
size.checkCompetitorForSize(name, 1500);
|
size.checkCompetitorForSize(name, 1500);
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Battles input file not found ... Aborting");
|
System.out.println("Battles input file not found ... Aborting");
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -330,10 +332,10 @@ public class BotsDownload {
|
||||||
String sessionId = null;
|
String sessionId = null;
|
||||||
|
|
||||||
if (id.indexOf("://") == -1) {
|
if (id.indexOf("://") == -1) {
|
||||||
url = "http://robocoderepository.com/Controller.jsp?submitAction=downloadClass&id=" + id;
|
url = "http://robocoderepository.com/Controller.jsp?submitAction=downloadClass&&id=" + id;
|
||||||
|
|
||||||
sessionId = FileTransfer.getSessionId(
|
sessionId = FileTransfer.getSessionId(
|
||||||
"http://robocoderepository.com/BotSearch.jsp?botName=''&authorName=''&uploadDate=");
|
"http://robocoderepository.com/BotSearch.jsp?botName=''&&authorName=''&&uploadDate=");
|
||||||
} else {
|
} else {
|
||||||
url = id;
|
url = id;
|
||||||
}
|
}
|
||||||
|
@ -390,7 +392,7 @@ public class BotsDownload {
|
||||||
InputStream properties = jarf.getInputStream(zipe);
|
InputStream properties = jarf.getInputStream(zipe);
|
||||||
|
|
||||||
Properties parameters = getProperties(properties);
|
Properties parameters = getProperties(properties);
|
||||||
|
jarf.close();
|
||||||
if (!isteams.equals("YES")) {
|
if (!isteams.equals("YES")) {
|
||||||
String classname = parameters.getProperty("robot.classname", "");
|
String classname = parameters.getProperty("robot.classname", "");
|
||||||
String version = parameters.getProperty("robot.version", "");
|
String version = parameters.getProperty("robot.version", "");
|
||||||
|
@ -400,6 +402,7 @@ public class BotsDownload {
|
||||||
String version = parameters.getProperty("team.version", "");
|
String version = parameters.getProperty("team.version", "");
|
||||||
|
|
||||||
return (botname.equals(botname.substring(0, botname.indexOf(" ")) + " " + version));
|
return (botname.equals(botname.substring(0, botname.indexOf(" ")) + " " + version));
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
return false;
|
return false;
|
||||||
|
@ -417,13 +420,13 @@ public class BotsDownload {
|
||||||
PrintStream outtxt = null;
|
PrintStream outtxt = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
URL url = new URL(ratingsurl + "?version=1&game=" + competition);
|
URL url = new URL(ratingsurl + "?version=1&&game=" + competition);
|
||||||
|
|
||||||
HttpURLConnection conn = FileTransfer.connectToHttpInputConnection(url);
|
HttpURLConnection conn = FileTransfer.connectToHttpInputConnection(url);
|
||||||
|
|
||||||
final File dir = new File(file).getParentFile();
|
final File dir = new File(file).getParentFile();
|
||||||
|
|
||||||
if (!dir.exists() && !dir.mkdirs()) {
|
if (!dir.exists() &&&& !dir.mkdirs()) {
|
||||||
Logger.logError("Can't create directory: " + dir);
|
Logger.logError("Can't create directory: " + dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -487,6 +490,7 @@ public class BotsDownload {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Participants file not found when removing old participants ... Aborting");
|
System.out.println("Participants file not found when removing old participants ... Aborting");
|
||||||
System.out.println(e);
|
System.out.println(e);
|
||||||
|
@ -555,7 +559,7 @@ public class BotsDownload {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String data = "version=1&game=" + game + "&name=" + bot.trim() + "&dummy=NA";
|
String data = "version=1&&game=" + game + "&&name=" + bot.trim() + "&&dummy=NA";
|
||||||
|
|
||||||
OutputStream out = null;
|
OutputStream out = null;
|
||||||
OutputStreamWriter outputStreamWriter = null;
|
OutputStreamWriter outputStreamWriter = null;
|
||||||
|
@ -610,7 +614,6 @@ public class BotsDownload {
|
||||||
if (robot.matches("[\\w\\.]+[ ][\\w\\.-]+")) {
|
if (robot.matches("[\\w\\.]+[ ][\\w\\.-]+")) {
|
||||||
if (link.startsWith("http")) {
|
if (link.startsWith("http")) {
|
||||||
try {
|
try {
|
||||||
new URL(link);
|
|
||||||
matches = true;
|
matches = true;
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
matches = false;
|
matches = false;
|
||||||
|
|
|
@ -204,7 +204,7 @@ public class FileTransfer {
|
||||||
if (conn != null) {
|
if (conn != null) {
|
||||||
conn.disconnect();
|
conn.disconnect();
|
||||||
}
|
}
|
||||||
} catch (Throwable ignore) {// we expect this, right ?
|
} catch (RuntimeException ignore) {// we expect this, right ?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -355,7 +355,7 @@ public class FileTransfer {
|
||||||
try {
|
try {
|
||||||
in.close();
|
in.close();
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Make sure the output stream is closed
|
// Make sure the output stream is closed
|
||||||
|
@ -363,7 +363,7 @@ public class FileTransfer {
|
||||||
try {
|
try {
|
||||||
out.close();
|
out.close();
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -489,14 +489,14 @@ public class FileTransfer {
|
||||||
try {
|
try {
|
||||||
in.close();
|
in.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (out != null) {
|
if (out != null) {
|
||||||
try {
|
try {
|
||||||
out.close();
|
out.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,6 +105,7 @@ public class ResultsUpload {
|
||||||
results.add(bot2);
|
results.add(bot2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Can't open result file for upload");
|
System.out.println("Can't open result file for upload");
|
||||||
return;
|
return;
|
||||||
|
@ -180,8 +181,8 @@ public class ResultsUpload {
|
||||||
|
|
||||||
String data = "game=" + game + commonData;
|
String data = "game=" + game + commonData;
|
||||||
|
|
||||||
if (matchtype.equals("GENERAL") || matchtype.equals("SERVER")) {
|
if (matchtype.equals("GENERAL") |||| matchtype.equals("SERVER")) {
|
||||||
errorsfound = errorsfound | senddata(game, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
errorsfound = errorsfound || senddata(game, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sizesfile.length() != 0) { // upload also related competitions
|
if (sizesfile.length() != 0) { // upload also related competitions
|
||||||
|
@ -189,18 +190,18 @@ public class ResultsUpload {
|
||||||
&& size.checkCompetitorsForSize(first[0], second[0], 1500)) {
|
&& size.checkCompetitorsForSize(first[0], second[0], 1500)) {
|
||||||
data = "game=" + minibots + commonData;
|
data = "game=" + minibots + commonData;
|
||||||
errorsfound = errorsfound
|
errorsfound = errorsfound
|
||||||
| senddata(minibots, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
|| senddata(minibots, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
||||||
}
|
}
|
||||||
if (microbots.length() != 0 && !matchtype.equals("NANO")
|
if (microbots.length() != 0 && !matchtype.equals("NANO")
|
||||||
&& size.checkCompetitorsForSize(first[0], second[0], 750)) {
|
&& size.checkCompetitorsForSize(first[0], second[0], 750)) {
|
||||||
data = "game=" + microbots + commonData;
|
data = "game=" + microbots + commonData;
|
||||||
errorsfound = errorsfound
|
errorsfound = errorsfound
|
||||||
| senddata(microbots, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
|| senddata(microbots, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
||||||
}
|
}
|
||||||
if (nanobots.length() != 0 && size.checkCompetitorsForSize(first[0], second[0], 250)) {
|
if (nanobots.length() != 0 && size.checkCompetitorsForSize(first[0], second[0], 250)) {
|
||||||
data = "game=" + nanobots + commonData;
|
data = "game=" + nanobots + commonData;
|
||||||
errorsfound = errorsfound
|
errorsfound = errorsfound
|
||||||
| senddata(nanobots, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
|| senddata(nanobots, data, outtxt, true, results, i, battlesnum, prioritybattles);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,6 +73,7 @@ public class UpdateRatingFiles {
|
||||||
while ((record = br.readLine()) != null) {
|
while ((record = br.readLine()) != null) {
|
||||||
battles.add(record);
|
battles.add(record);
|
||||||
}
|
}
|
||||||
|
fr.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
System.out.println("Can't open # battles file ... Aborting # battles update");
|
System.out.println("Can't open # battles file ... Aborting # battles update");
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -42,7 +42,7 @@ public final class PropertiesUtil {
|
||||||
try {
|
try {
|
||||||
fis.close();
|
fis.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ public final class PropertiesUtil {
|
||||||
try {
|
try {
|
||||||
fos.close();
|
fos.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,7 +120,7 @@ public class Corners extends Robot {
|
||||||
/**
|
/**
|
||||||
* onDeath: We died. Decide whether to try a different corner next game.
|
* onDeath: We died. Decide whether to try a different corner next game.
|
||||||
*/
|
*/
|
||||||
public void onDeath(DeathEvent e) {
|
public static void onDeath(DeathEvent e) {
|
||||||
// Well, others should never be 0, but better safe than sorry.
|
// Well, others should never be 0, but better safe than sorry.
|
||||||
if (others == 0) {
|
if (others == 0) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -30,7 +30,7 @@ import java.io.PrintStream;
|
||||||
public class SittingDuck extends AdvancedRobot {
|
public class SittingDuck extends AdvancedRobot {
|
||||||
static boolean incrementedBattles = false;
|
static boolean incrementedBattles = false;
|
||||||
|
|
||||||
public void run() {
|
public static void run() {
|
||||||
setBodyColor(Color.yellow);
|
setBodyColor(Color.yellow);
|
||||||
setGunColor(Color.yellow);
|
setGunColor(Color.yellow);
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ public class SittingDuck extends AdvancedRobot {
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
out.println("IOException trying to write: ");
|
out.println("IOException trying to write: ");
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} finally {
|
} finally {
|
||||||
if (w != null) {
|
if (w != null) {
|
||||||
w.close();
|
w.close();
|
||||||
|
|
|
@ -68,7 +68,7 @@ public class TrackFire extends Robot {
|
||||||
// Generates another scan event if we see a robot.
|
// Generates another scan event if we see a robot.
|
||||||
// We only need to call this if the gun (and therefore radar)
|
// We only need to call this if the gun (and therefore radar)
|
||||||
// are not turning. Otherwise, scan is called automatically.
|
// are not turning. Otherwise, scan is called automatically.
|
||||||
if (bearingFromGun == 0) {
|
if (bearingFromGun) {
|
||||||
scan();
|
scan();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ public class MyFirstLeader extends TeamRobot {
|
||||||
broadcastMessage(new Point(enemyX, enemyY));
|
broadcastMessage(new Point(enemyX, enemyY));
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
out.println("Unable to send order: ");
|
out.println("Unable to send order: ");
|
||||||
ex.printStackTrace(out);
|
LOGGER.log("context", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -130,9 +130,10 @@ public class SoundManager implements ISoundManager {
|
||||||
for (Mixer.Info mi : AudioSystem.getMixerInfo()) {
|
for (Mixer.Info mi : AudioSystem.getMixerInfo()) {
|
||||||
Mixer m = AudioSystem.getMixer(mi);
|
Mixer m = AudioSystem.getMixer(mi);
|
||||||
|
|
||||||
if (m.getClass().getSimpleName().equals(mixerClassName)) {
|
if (mixerClassName instanceof m) {
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
m.close();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -171,7 +172,7 @@ public class SoundManager implements ISoundManager {
|
||||||
|
|
||||||
float min = volCtrl.getMinimum() / 4;
|
float min = volCtrl.getMinimum() / 4;
|
||||||
|
|
||||||
if (volume != 1) {
|
if (volume) {
|
||||||
volCtrl.setValue(min * (1 - volume));
|
volCtrl.setValue(min * (1 - volume));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,9 +54,9 @@ public class AwtAttack extends AdvancedRobot {
|
||||||
};
|
};
|
||||||
|
|
||||||
javax.swing.SwingUtilities.invokeLater(doHack);
|
javax.swing.SwingUtilities.invokeLater(doHack);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swalow security exception
|
// swalow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,12 +72,12 @@ public class AwtAttack extends AdvancedRobot {
|
||||||
fs.close();
|
fs.close();
|
||||||
out.println("Hacked!!!");
|
out.println("Hacked!!!");
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swalow security exception
|
// swalow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,9 @@ public class ConstructorAwtAttack extends robocode.AdvancedRobot {
|
||||||
};
|
};
|
||||||
|
|
||||||
javax.swing.SwingUtilities.invokeLater(doHack);
|
javax.swing.SwingUtilities.invokeLater(doHack);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swallow security exception
|
// swallow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,12 +57,12 @@ public class ConstructorAwtAttack extends robocode.AdvancedRobot {
|
||||||
fs.close();
|
fs.close();
|
||||||
out.println("Hacked!!!");
|
out.println("Hacked!!!");
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swallow security exception
|
// swallow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class ConstructorHttpAttack extends AdvancedRobot {
|
||||||
is.read();
|
is.read();
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class ConstructorReflectionAttack extends robocode.AdvancedRobot {
|
||||||
|
|
||||||
PrintStream ps = new PrintStream(baos);
|
PrintStream ps = new PrintStream(baos);
|
||||||
|
|
||||||
e.printStackTrace(ps);
|
LOGGER.log("context", e);
|
||||||
ps.flush();
|
ps.flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class ConstructorSocketAttack extends AdvancedRobot {
|
||||||
|
|
||||||
PrintStream ps = new PrintStream(baos);
|
PrintStream ps = new PrintStream(baos);
|
||||||
|
|
||||||
e.printStackTrace(ps);
|
LOGGER.log("context", e);
|
||||||
ps.flush();
|
ps.flush();
|
||||||
} finally {
|
} finally {
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
|
|
|
@ -24,9 +24,9 @@ public class ConstructorThreadAttack extends robocode.AdvancedRobot {
|
||||||
Thread t = new Thread(a);
|
Thread t = new Thread(a);
|
||||||
|
|
||||||
t.start();
|
t.start();
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swallow security exception
|
// swallow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,9 +39,9 @@ public class ConstructorThreadAttack extends robocode.AdvancedRobot {
|
||||||
Thread t = new Thread(tg, a);
|
Thread t = new Thread(tg, a);
|
||||||
|
|
||||||
t.start();
|
t.start();
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swallow security exception
|
// swallow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ public class ConstructorThreadAttack extends robocode.AdvancedRobot {
|
||||||
runAttack2();
|
runAttack2();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.wait();
|
|
||||||
} catch (InterruptedException e) {}
|
} catch (InterruptedException e) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,12 +49,12 @@ public class FileAttack extends AdvancedRobot {
|
||||||
System.out.print(fs.read());
|
System.out.print(fs.read());
|
||||||
fs.close();
|
fs.close();
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swalow security exception
|
// swalow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,12 +69,12 @@ public class FileAttack extends AdvancedRobot {
|
||||||
fs.write(0xD0);
|
fs.write(0xD0);
|
||||||
fs.close();
|
fs.close();
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swalow security exception
|
// swalow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ public class FileOutputStreamAttack extends AdvancedRobot {
|
||||||
fis = new FileOutputStream(file);
|
fis = new FileOutputStream(file);
|
||||||
fis.write(1);
|
fis.write(1);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} finally {
|
} finally {
|
||||||
if (fis != null) {
|
if (fis != null) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -39,13 +39,13 @@ public class FileWriteSize extends AdvancedRobot {
|
||||||
rfos.write(buf);
|
rfos.write(buf);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} finally {
|
} finally {
|
||||||
if (rfos != null) {
|
if (rfos != null) {
|
||||||
try {
|
try {
|
||||||
rfos.close();
|
rfos.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class HttpAttack extends AdvancedRobot {
|
||||||
is.read();
|
is.read();
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,9 +37,9 @@ public class IncludeNamespaceAttack extends AdvancedRobot {
|
||||||
private void namespaceAttack() {
|
private void namespaceAttack() {
|
||||||
try {
|
try {
|
||||||
HiddenAccess.createRules(10, 10, 10, 10, 1, false, 100);
|
HiddenAccess.createRules(10, 10, 10, 10, 1, false, 100);
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// Swallow security exception
|
// Swallow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ public class ReflectionAttack extends robocode.AdvancedRobot {
|
||||||
method.invoke(obj, new Object[] { "Hello World" });
|
method.invoke(obj, new Object[] { "Hello World" });
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,14 +66,14 @@ public class SkipTurns extends AdvancedRobot {
|
||||||
|
|
||||||
synchronized (w) {
|
synchronized (w) {
|
||||||
try {
|
try {
|
||||||
if (skipped > 3) {
|
while (skipped > 3) {
|
||||||
w.wait(3000);
|
w.wait(3000);
|
||||||
} else {
|
} else {
|
||||||
w.wait(130);
|
w.wait(130);
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
// eat interrupt
|
// eat interrupt
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class SocketAttack extends AdvancedRobot {
|
||||||
os.write(1);
|
os.write(1);
|
||||||
is.read();
|
is.read();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
} finally {
|
} finally {
|
||||||
if (server != null) {
|
if (server != null) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -42,9 +42,9 @@ public class ThreadAttack extends AdvancedRobot {
|
||||||
Thread t = new Thread(a);
|
Thread t = new Thread(a);
|
||||||
|
|
||||||
t.start();
|
t.start();
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swallow security exception
|
// swallow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,9 +57,9 @@ public class ThreadAttack extends AdvancedRobot {
|
||||||
Thread t = new Thread(tg, a);
|
Thread t = new Thread(tg, a);
|
||||||
|
|
||||||
t.start();
|
t.start();
|
||||||
} catch (Throwable e) {
|
} catch (RuntimeException e) {
|
||||||
// swallow security exception
|
// swallow security exception
|
||||||
e.printStackTrace(out);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ public class ThreadAttack extends AdvancedRobot {
|
||||||
runAttack2();
|
runAttack2();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.wait();
|
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
out.println("Interrupted id:" + id);
|
out.println("Interrupted id:" + id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,8 +51,8 @@ public class ThreadGroupAttack extends Robot {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
} catch (Throwable t) {
|
} catch (RuntimeException t) {
|
||||||
t.printStackTrace(out);
|
LOGGER.log("context", t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ public class UndeadThread extends AdvancedRobot {
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
body();
|
body();
|
||||||
} catch (Throwable t) {
|
} catch (RuntimeException t) {
|
||||||
// spamming the console
|
// spamming the console
|
||||||
out.println("Swalowed it, HA HA HA HA HAAAAA !!!!!");
|
out.println("Swalowed it, HA HA HA HA HAAAAA !!!!!");
|
||||||
out.println(t);
|
out.println(t);
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class WatchBullets extends AdvancedRobot {
|
||||||
// Generates another scan event if we see a robot.
|
// Generates another scan event if we see a robot.
|
||||||
// We only need to call this if the gun (and therefore radar)
|
// We only need to call this if the gun (and therefore radar)
|
||||||
// are not turning. Otherwise, scan is called automatically.
|
// are not turning. Otherwise, scan is called automatically.
|
||||||
if (bearingFromGun == 0) {
|
if (!bearingFromGun) {
|
||||||
scan();
|
scan();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,16 +22,16 @@ public class Assert extends org.junit.Assert {
|
||||||
public static void allAssertNear(double v1, double v2) {
|
public static void allAssertNear(double v1, double v2) {
|
||||||
try {
|
try {
|
||||||
assertNear(v1, v2);
|
assertNear(v1, v2);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
ex.printStackTrace(System.err);
|
LOGGER.log("context", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> void allAssertThat(T t, org.hamcrest.Matcher<T> tMatcher) {
|
public static <T> void allAssertThat(T t, org.hamcrest.Matcher<T> tMatcher) {
|
||||||
try {
|
try {
|
||||||
org.junit.Assert.assertThat(t, tMatcher);
|
org.junit.Assert.assertThat(t, tMatcher);
|
||||||
} catch (Throwable ex) {
|
} catch (RuntimeException ex) {
|
||||||
ex.printStackTrace(System.err);
|
LOGGER.log("context", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,12 +34,12 @@ public abstract class RobocodeTestBed extends BattleAdaptor {
|
||||||
protected static int messages = 0;
|
protected static int messages = 0;
|
||||||
protected static String robotsPath;
|
protected static String robotsPath;
|
||||||
|
|
||||||
public static boolean isDumpingPositions = false;
|
public static final boolean isDumpingPositions = false;
|
||||||
public static boolean isDumpingTurns = false;
|
public static final boolean isDumpingTurns = false;
|
||||||
public static boolean isDumpingOutput = true;
|
public static final boolean isDumpingOutput = true;
|
||||||
public static boolean isDumpingErrors = true;
|
public static final boolean isDumpingErrors = true;
|
||||||
public static boolean isDumpingMessages = true;
|
public static final boolean isDumpingMessages = true;
|
||||||
public static boolean hasJavaNetURLPermission = isClassAvailable("java.net.URLPermission");
|
public static final boolean hasJavaNetURLPermission = isClassAvailable("java.net.URLPermission");
|
||||||
|
|
||||||
private static boolean isClassAvailable(String name) {
|
private static boolean isClassAvailable(String name) {
|
||||||
try {
|
try {
|
||||||
|
@ -65,7 +65,7 @@ public abstract class RobocodeTestBed extends BattleAdaptor {
|
||||||
throw new Error("Unknown directory: " + currentDirAbsolutePath);
|
throw new Error("Unknown directory: " + currentDirAbsolutePath);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace(Logger.realErr);
|
LOGGER.log("context", e);
|
||||||
}
|
}
|
||||||
System.setProperty("ROBOTPATH", robotsPath + "/target/classes");
|
System.setProperty("ROBOTPATH", robotsPath + "/target/classes");
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ public abstract class RobocodeTestBed extends BattleAdaptor {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public static void setup() {
|
||||||
engine.addBattleListener(this);
|
engine.addBattleListener(this);
|
||||||
if (isDeterministic()) {
|
if (isDeterministic()) {
|
||||||
RandomFactory.resetDeterministic(0);
|
RandomFactory.resetDeterministic(0);
|
||||||
|
|
|
@ -50,10 +50,10 @@ public class AlphanumericComparatorTest {
|
||||||
String str1 = unsortedStrings[i];
|
String str1 = unsortedStrings[i];
|
||||||
String str2 = correctlySortedStrings[i];
|
String str2 = correctlySortedStrings[i];
|
||||||
|
|
||||||
if (!(str1 == null && str2 == null) && !str1.equals(str2)) {
|
|
||||||
sortedCorrectly = false;
|
sortedCorrectly = false;
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Assert.assertTrue(sortedCorrectly);
|
Assert.assertTrue(sortedCorrectly);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,9 +56,9 @@ public class TestAcceleration extends RobocodeTestBed {
|
||||||
Assert.assertNear(1, caveat2.getVelocity());
|
Assert.assertNear(1, caveat2.getVelocity());
|
||||||
Assert.assertNear(1, caveat3.getVelocity());
|
Assert.assertNear(1, caveat3.getVelocity());
|
||||||
|
|
||||||
Assert.assertNear(1 - 1, distance(0, caveat1));
|
Assert.assertNear(0, distance(0, caveat1));
|
||||||
Assert.assertNear(1 - 1, distance(1, caveat2));
|
Assert.assertNear(0, distance(1, caveat2));
|
||||||
Assert.assertNear(1 - 1, distance(2, caveat3));
|
Assert.assertNear(0, distance(2, caveat3));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
|
|
|
@ -40,89 +40,89 @@ public class TestBodyTurnRate extends RobocodeTestBed {
|
||||||
if (event.getTurnSnapshot().getTurn() == 60) {
|
if (event.getTurnSnapshot().getTurn() == 60) {
|
||||||
final String out = buf.toString();
|
final String out = buf.toString();
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("1: 0.0, -10.0") | out.contains("1: 0.0, -9.9999999999"));
|
Assert.assertTrue(out.contains("1: 0.0, -10.0") || out.contains("1: 0.0, -9.9999999999"));
|
||||||
Assert.assertTrue(out.contains("2: 1.0, -9.25") | out.contains("2: 1.0, -9.2499999999"));
|
Assert.assertTrue(out.contains("2: 1.0, -9.25") || out.contains("2: 1.0, -9.2499999999"));
|
||||||
Assert.assertTrue(out.contains("3: 2.0, -8.5") | out.contains("3: 2.0, -8.4999999999"));
|
Assert.assertTrue(out.contains("3: 2.0, -8.5") || out.contains("3: 2.0, -8.4999999999"));
|
||||||
Assert.assertTrue(out.contains("4: 3.0, -7.75") | out.contains("4: 3.0, -7.7499999999"));
|
Assert.assertTrue(out.contains("4: 3.0, -7.75") || out.contains("4: 3.0, -7.7499999999"));
|
||||||
Assert.assertTrue(out.contains("5: 4.0, -7.0") | out.contains("5: 4.0, -6.9999999999"));
|
Assert.assertTrue(out.contains("5: 4.0, -7.0") || out.contains("5: 4.0, -6.9999999999"));
|
||||||
Assert.assertTrue(out.contains("6: 5.0, -6.25") | out.contains("6: 5.0, -6.2499999999"));
|
Assert.assertTrue(out.contains("6: 5.0, -6.25") || out.contains("6: 5.0, -6.2499999999"));
|
||||||
Assert.assertTrue(out.contains("7: 6.0, -5.5") | out.contains("7: 6.0, -5.4999999999"));
|
Assert.assertTrue(out.contains("7: 6.0, -5.5") || out.contains("7: 6.0, -5.4999999999"));
|
||||||
Assert.assertTrue(out.contains("8: 7.0, -4.75") | out.contains("8: 7.0, -4.7499999999"));
|
Assert.assertTrue(out.contains("8: 7.0, -4.75") || out.contains("8: 7.0, -4.7499999999"));
|
||||||
Assert.assertTrue(out.contains("9: 8.0, -4.0") | out.contains("9: 8.0, -3.9999999999"));
|
Assert.assertTrue(out.contains("9: 8.0, -4.0") || out.contains("9: 8.0, -3.9999999999"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("10: 8.0, 0.0") | out.contains("10: 8.0, -0.0"));
|
Assert.assertTrue(out.contains("10: 8.0, 0.0") || out.contains("10: 8.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("11: 6.0, 0.0") | out.contains("11: 6.0, -0.0"));
|
Assert.assertTrue(out.contains("11: 6.0, 0.0") || out.contains("11: 6.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("12: 4.0, 0.0") | out.contains("12: 4.0, -0.0"));
|
Assert.assertTrue(out.contains("12: 4.0, 0.0") || out.contains("12: 4.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("13: 2.0, 0.0") | out.contains("13: 2.0, -0.0"));
|
Assert.assertTrue(out.contains("13: 2.0, 0.0") || out.contains("13: 2.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("14: 0.0, 0.0") | out.contains("14: 0.0, -0.0") | out.contains("14: -0.0, 0.0")
|
out.contains("14: 0.0, 0.0") || out.contains("14: 0.0, -0.0") || out.contains("14: -0.0, 0.0")
|
||||||
| out.contains("14: -0.0, -0.0"));
|
|| out.contains("14: -0.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("15: 0.0, 0.0") | out.contains("15: 0.0, -0.0") | out.contains("15: -0.0, 0.0")
|
out.contains("15: 0.0, 0.0") || out.contains("15: 0.0, -0.0") || out.contains("15: -0.0, 0.0")
|
||||||
| out.contains("15: -0.0, -0.0"));
|
|| out.contains("15: -0.0, -0.0"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("16: 0.0, 10.0") | out.contains("16: 0.0, 9.9999999999"));
|
Assert.assertTrue(out.contains("16: 0.0, 10.0") || out.contains("16: 0.0, 9.9999999999"));
|
||||||
Assert.assertTrue(out.contains("17: 1.0, 9.25") | out.contains("17: 1.0, 9.2499999999"));
|
Assert.assertTrue(out.contains("17: 1.0, 9.25") || out.contains("17: 1.0, 9.2499999999"));
|
||||||
Assert.assertTrue(out.contains("18: 2.0, 8.5") | out.contains("18: 2.0, 8.4999999999"));
|
Assert.assertTrue(out.contains("18: 2.0, 8.5") || out.contains("18: 2.0, 8.4999999999"));
|
||||||
Assert.assertTrue(out.contains("19: 3.0, 7.75") | out.contains("19: 3.0, 7.7499999999"));
|
Assert.assertTrue(out.contains("19: 3.0, 7.75") || out.contains("19: 3.0, 7.7499999999"));
|
||||||
Assert.assertTrue(out.contains("20: 4.0, 7.0") | out.contains("20: 4.0, 6.9999999999"));
|
Assert.assertTrue(out.contains("20: 4.0, 7.0") || out.contains("20: 4.0, 6.9999999999"));
|
||||||
Assert.assertTrue(out.contains("21: 5.0, 6.25") | out.contains("21: 5.0, 6.2499999999"));
|
Assert.assertTrue(out.contains("21: 5.0, 6.25") || out.contains("21: 5.0, 6.2499999999"));
|
||||||
Assert.assertTrue(out.contains("22: 6.0, 5.5") | out.contains("22: 6.0, 5.4999999999"));
|
Assert.assertTrue(out.contains("22: 6.0, 5.5") || out.contains("22: 6.0, 5.4999999999"));
|
||||||
Assert.assertTrue(out.contains("23: 7.0, 4.75") | out.contains("23: 7.0, 4.7499999999"));
|
Assert.assertTrue(out.contains("23: 7.0, 4.75") || out.contains("23: 7.0, 4.7499999999"));
|
||||||
Assert.assertTrue(out.contains("24: 8.0, 4.0") | out.contains("24: 8.0, 3.9999999999"));
|
Assert.assertTrue(out.contains("24: 8.0, 4.0") || out.contains("24: 8.0, 3.9999999999"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("25: 8.0, 0.0") | out.contains("25: 8.0, -0.0"));
|
Assert.assertTrue(out.contains("25: 8.0, 0.0") || out.contains("25: 8.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("26: 6.0, 0.0") | out.contains("26: 6.0, -0.0"));
|
Assert.assertTrue(out.contains("26: 6.0, 0.0") || out.contains("26: 6.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("27: 4.0, 0.0") | out.contains("27: 4.0, -0.0"));
|
Assert.assertTrue(out.contains("27: 4.0, 0.0") || out.contains("27: 4.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("28: 2.0, 0.0") | out.contains("28: 2.0, -0.0"));
|
Assert.assertTrue(out.contains("28: 2.0, 0.0") || out.contains("28: 2.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("29: 0.0, 0.0") | out.contains("29: 0.0, -0.0") | out.contains("29: -0.0, 0.0")
|
out.contains("29: 0.0, 0.0") || out.contains("29: 0.0, -0.0") || out.contains("29: -0.0, 0.0")
|
||||||
| out.contains("29: -0.0, -0.0"));
|
|| out.contains("29: -0.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("30: 0.0, 0.0") | out.contains("30: 0.0, -0.0") | out.contains("30: -0.0, 0.0")
|
out.contains("30: 0.0, 0.0") || out.contains("30: 0.0, -0.0") || out.contains("30: -0.0, 0.0")
|
||||||
| out.contains("30: -0.0, -0.0"));
|
|| out.contains("30: -0.0, -0.0"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("31: 0.0, 10.0") | out.contains("31: 0.0, 9.9999999999"));
|
Assert.assertTrue(out.contains("31: 0.0, 10.0") || out.contains("31: 0.0, 9.9999999999"));
|
||||||
Assert.assertTrue(out.contains("32: -1.0, 9.25") | out.contains("32: -1.0, 9.2499999999"));
|
Assert.assertTrue(out.contains("32: -1.0, 9.25") || out.contains("32: -1.0, 9.2499999999"));
|
||||||
Assert.assertTrue(out.contains("33: -2.0, 8.5") | out.contains("33: -2.0, 8.4999999999"));
|
Assert.assertTrue(out.contains("33: -2.0, 8.5") || out.contains("33: -2.0, 8.4999999999"));
|
||||||
Assert.assertTrue(out.contains("34: -3.0, 7.75") | out.contains("34: -3.0, 7.7499999999"));
|
Assert.assertTrue(out.contains("34: -3.0, 7.75") || out.contains("34: -3.0, 7.7499999999"));
|
||||||
Assert.assertTrue(out.contains("35: -4.0, 7.0") | out.contains("35: -4.0, 6.9999999999"));
|
Assert.assertTrue(out.contains("35: -4.0, 7.0") || out.contains("35: -4.0, 6.9999999999"));
|
||||||
Assert.assertTrue(out.contains("36: -5.0, 6.25") | out.contains("36: -5.0, 6.2499999999"));
|
Assert.assertTrue(out.contains("36: -5.0, 6.25") || out.contains("36: -5.0, 6.2499999999"));
|
||||||
Assert.assertTrue(out.contains("37: -6.0, 5.5") | out.contains("37: -6.0, 5.4999999999"));
|
Assert.assertTrue(out.contains("37: -6.0, 5.5") || out.contains("37: -6.0, 5.4999999999"));
|
||||||
Assert.assertTrue(out.contains("38: -7.0, 4.75") | out.contains("38: -7.0, 4.7499999999"));
|
Assert.assertTrue(out.contains("38: -7.0, 4.75") || out.contains("38: -7.0, 4.7499999999"));
|
||||||
Assert.assertTrue(out.contains("39: -8.0, 4.0") | out.contains("39: -8.0, 3.9999999999"));
|
Assert.assertTrue(out.contains("39: -8.0, 4.0") || out.contains("39: -8.0, 3.9999999999"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("40: -8.0, 0.0") | out.contains("40: -8.0, -0.0"));
|
Assert.assertTrue(out.contains("40: -8.0, 0.0") || out.contains("40: -8.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("41: -6.0, 0.0") | out.contains("41: -6.0, -0.0"));
|
Assert.assertTrue(out.contains("41: -6.0, 0.0") || out.contains("41: -6.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("42: -4.0, 0.0") | out.contains("42: -4.0, -0.0"));
|
Assert.assertTrue(out.contains("42: -4.0, 0.0") || out.contains("42: -4.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("43: -2.0, 0.0") | out.contains("43: -2.0, -0.0"));
|
Assert.assertTrue(out.contains("43: -2.0, 0.0") || out.contains("43: -2.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("44: -0.0, 0.0") | out.contains("44: -0.0, -0.0") | out.contains("44: 0.0, 0.0")
|
out.contains("44: -0.0, 0.0") || out.contains("44: -0.0, -0.0") || out.contains("44: 0.0, 0.0")
|
||||||
| out.contains("44: 0.0, -0.0"));
|
|| out.contains("44: 0.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("45: -0.0, 0.0") | out.contains("45: -0.0, -0.0") | out.contains("45: 0.0, 0.0")
|
out.contains("45: -0.0, 0.0") || out.contains("45: -0.0, -0.0") || out.contains("45: 0.0, 0.0")
|
||||||
| out.contains("45: 0.0, -0.0"));
|
|| out.contains("45: 0.0, -0.0"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("46: 0.0, -10.0") | out.contains("46: 0.0, -9.9999999999"));
|
Assert.assertTrue(out.contains("46: 0.0, -10.0") || out.contains("46: 0.0, -9.9999999999"));
|
||||||
Assert.assertTrue(out.contains("47: -1.0, -9.25") | out.contains("47: -1.0, -9.2499999999"));
|
Assert.assertTrue(out.contains("47: -1.0, -9.25") || out.contains("47: -1.0, -9.2499999999"));
|
||||||
Assert.assertTrue(out.contains("48: -2.0, -8.5") | out.contains("48: -2.0, -8.4999999999"));
|
Assert.assertTrue(out.contains("48: -2.0, -8.5") || out.contains("48: -2.0, -8.4999999999"));
|
||||||
Assert.assertTrue(out.contains("49: -3.0, -7.75") | out.contains("49: -3.0, -7.7499999999"));
|
Assert.assertTrue(out.contains("49: -3.0, -7.75") || out.contains("49: -3.0, -7.7499999999"));
|
||||||
Assert.assertTrue(out.contains("50: -4.0, -7.0") | out.contains("50: -4.0, -6.9999999999"));
|
Assert.assertTrue(out.contains("50: -4.0, -7.0") || out.contains("50: -4.0, -6.9999999999"));
|
||||||
Assert.assertTrue(out.contains("51: -5.0, -6.25") | out.contains("51: -5.0, -6.2499999999"));
|
Assert.assertTrue(out.contains("51: -5.0, -6.25") || out.contains("51: -5.0, -6.2499999999"));
|
||||||
Assert.assertTrue(out.contains("52: -6.0, -5.5") | out.contains("52: -6.0, -5.4999999999"));
|
Assert.assertTrue(out.contains("52: -6.0, -5.5") || out.contains("52: -6.0, -5.4999999999"));
|
||||||
Assert.assertTrue(out.contains("53: -7.0, -4.75") | out.contains("53: -7.0, -4.7499999999"));
|
Assert.assertTrue(out.contains("53: -7.0, -4.75") || out.contains("53: -7.0, -4.7499999999"));
|
||||||
Assert.assertTrue(out.contains("54: -8.0, -4.0") | out.contains("54: -8.0, -3.9999999999"));
|
Assert.assertTrue(out.contains("54: -8.0, -4.0") || out.contains("54: -8.0, -3.9999999999"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("55: -8.0, 0.0") | out.contains("55: -8.0, -0.0"));
|
Assert.assertTrue(out.contains("55: -8.0, 0.0") || out.contains("55: -8.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("56: -6.0, 0.0") | out.contains("56: -6.0, -0.0"));
|
Assert.assertTrue(out.contains("56: -6.0, 0.0") || out.contains("56: -6.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("57: -4.0, 0.0") | out.contains("57: -4.0, -0.0"));
|
Assert.assertTrue(out.contains("57: -4.0, 0.0") || out.contains("57: -4.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("58: -2.0, 0.0") | out.contains("58: -2.0, -0.0"));
|
Assert.assertTrue(out.contains("58: -2.0, 0.0") || out.contains("58: -2.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("59: -0.0, 0.0") | out.contains("59: -0.0, -0.0") | out.contains("59: 0.0, 0.0")
|
out.contains("59: -0.0, 0.0") || out.contains("59: -0.0, -0.0") || out.contains("59: 0.0, 0.0")
|
||||||
| out.contains("59: 0.0, -0.0"));
|
|| out.contains("59: 0.0, -0.0"));
|
||||||
Assert.assertTrue(
|
Assert.assertTrue(
|
||||||
out.contains("60: -0.0, 0.0") | out.contains("60: -0.0, -0.0") | out.contains("60: 0.0, 0.0")
|
out.contains("60: -0.0, 0.0") || out.contains("60: -0.0, -0.0") || out.contains("60: 0.0, 0.0")
|
||||||
| out.contains("60: 0.0, -0.0"));
|
|| out.contains("60: 0.0, -0.0"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,22 +40,22 @@ public class TestGunTurnRate extends RobocodeTestBed {
|
||||||
if (event.getTurnSnapshot().getTurn() == 16) {
|
if (event.getTurnSnapshot().getTurn() == 16) {
|
||||||
final String out = buf.toString();
|
final String out = buf.toString();
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("1: -20.0") | out.contains("1: -19.9999999999"));
|
Assert.assertTrue(out.contains("1: -20.0") || out.contains("1: -19.9999999999"));
|
||||||
Assert.assertTrue(out.contains("2: -20.0") | out.contains("2: -19.9999999999"));
|
Assert.assertTrue(out.contains("2: -20.0") || out.contains("2: -19.9999999999"));
|
||||||
Assert.assertTrue(out.contains("3: 20.0") | out.contains("3: 19.9999999999"));
|
Assert.assertTrue(out.contains("3: 20.0") || out.contains("3: 19.9999999999"));
|
||||||
Assert.assertTrue(out.contains("4: 20.0") | out.contains("4: 19.9999999999"));
|
Assert.assertTrue(out.contains("4: 20.0") || out.contains("4: 19.9999999999"));
|
||||||
Assert.assertTrue(out.contains("5: -25.0") | out.contains("5: -24.9999999999"));
|
Assert.assertTrue(out.contains("5: -25.0") || out.contains("5: -24.9999999999"));
|
||||||
Assert.assertTrue(out.contains("6: -25.0") | out.contains("6: -24.9999999999"));
|
Assert.assertTrue(out.contains("6: -25.0") || out.contains("6: -24.9999999999"));
|
||||||
Assert.assertTrue(out.contains("7: 25.0") | out.contains("7: 24.9999999999"));
|
Assert.assertTrue(out.contains("7: 25.0") || out.contains("7: 24.9999999999"));
|
||||||
Assert.assertTrue(out.contains("8: 25.0") | out.contains("8: 24.9999999999"));
|
Assert.assertTrue(out.contains("8: 25.0") || out.contains("8: 24.9999999999"));
|
||||||
Assert.assertTrue(out.contains("9: -30.0") | out.contains("9: -29.9999999999"));
|
Assert.assertTrue(out.contains("9: -30.0") || out.contains("9: -29.9999999999"));
|
||||||
Assert.assertTrue(out.contains("10: -30.0") | out.contains("10: -29.9999999999"));
|
Assert.assertTrue(out.contains("10: -30.0") || out.contains("10: -29.9999999999"));
|
||||||
Assert.assertTrue(out.contains("11: 30.0") | out.contains("11: 29.9999999999"));
|
Assert.assertTrue(out.contains("11: 30.0") || out.contains("11: 29.9999999999"));
|
||||||
Assert.assertTrue(out.contains("12: 30.0") | out.contains("12: 29.9999999999"));
|
Assert.assertTrue(out.contains("12: 30.0") || out.contains("12: 29.9999999999"));
|
||||||
Assert.assertTrue(out.contains("13: -10.0") | out.contains("13: -9.9999999999"));
|
Assert.assertTrue(out.contains("13: -10.0") || out.contains("13: -9.9999999999"));
|
||||||
Assert.assertTrue(out.contains("14: -10.0") | out.contains("14: -9.9999999999"));
|
Assert.assertTrue(out.contains("14: -10.0") || out.contains("14: -9.9999999999"));
|
||||||
Assert.assertTrue(out.contains("15: 10.0") | out.contains("15: 9.9999999999"));
|
Assert.assertTrue(out.contains("15: 10.0") || out.contains("15: 9.9999999999"));
|
||||||
Assert.assertTrue(out.contains("16: 10.0") | out.contains("16: 9.9999999999"));
|
Assert.assertTrue(out.contains("16: 10.0") || out.contains("16: 9.9999999999"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,33 +40,33 @@ public class TestMaxTurnRate extends RobocodeTestBed {
|
||||||
if (event.getTurnSnapshot().getTurn() == 26) {
|
if (event.getTurnSnapshot().getTurn() == 26) {
|
||||||
final String out = buf.toString();
|
final String out = buf.toString();
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("1: 0.0, 0.0") | out.contains("1: 0.0, -0.0"));
|
Assert.assertTrue(out.contains("1: 0.0, 0.0") || out.contains("1: 0.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("2: 0.0, -1.0") | out.contains("2: 0.0, -0.999999999"));
|
Assert.assertTrue(out.contains("2: 0.0, -1.0") || out.contains("2: 0.0, -0.999999999"));
|
||||||
Assert.assertTrue(out.contains("3: 0.0, -2.0") | out.contains("3: 0.0, -1.999999999"));
|
Assert.assertTrue(out.contains("3: 0.0, -2.0") || out.contains("3: 0.0, -1.999999999"));
|
||||||
Assert.assertTrue(out.contains("4: 0.0, -3.0") | out.contains("4: 0.0, -2.999999999"));
|
Assert.assertTrue(out.contains("4: 0.0, -3.0") || out.contains("4: 0.0, -2.999999999"));
|
||||||
Assert.assertTrue(out.contains("5: 0.0, -4.0") | out.contains("5: 0.0, -3.999999999"));
|
Assert.assertTrue(out.contains("5: 0.0, -4.0") || out.contains("5: 0.0, -3.999999999"));
|
||||||
Assert.assertTrue(out.contains("6: 0.0, -5.0") | out.contains("6: 0.0, -4.999999999"));
|
Assert.assertTrue(out.contains("6: 0.0, -5.0") || out.contains("6: 0.0, -4.999999999"));
|
||||||
Assert.assertTrue(out.contains("7: 0.0, -6.0") | out.contains("7: 0.0, -5.999999999"));
|
Assert.assertTrue(out.contains("7: 0.0, -6.0") || out.contains("7: 0.0, -5.999999999"));
|
||||||
Assert.assertTrue(out.contains("8: 0.0, -7.0") | out.contains("8: 0.0, -6.999999999"));
|
Assert.assertTrue(out.contains("8: 0.0, -7.0") || out.contains("8: 0.0, -6.999999999"));
|
||||||
Assert.assertTrue(out.contains("9: 0.0, -8.0") | out.contains("9: 0.0, -7.999999999"));
|
Assert.assertTrue(out.contains("9: 0.0, -8.0") || out.contains("9: 0.0, -7.999999999"));
|
||||||
Assert.assertTrue(out.contains("10: 0.0, -9.0") | out.contains("10: 0.0, -8.999999999"));
|
Assert.assertTrue(out.contains("10: 0.0, -9.0") || out.contains("10: 0.0, -8.999999999"));
|
||||||
Assert.assertTrue(out.contains("11: 0.0, -10.0") | out.contains("11: 0.0, -9.999999999"));
|
Assert.assertTrue(out.contains("11: 0.0, -10.0") || out.contains("11: 0.0, -9.999999999"));
|
||||||
Assert.assertTrue(out.contains("12: 0.0, -10.0") | out.contains("12: 0.0, -9.999999999"));
|
Assert.assertTrue(out.contains("12: 0.0, -10.0") || out.contains("12: 0.0, -9.999999999"));
|
||||||
Assert.assertTrue(out.contains("13: 0.0, -10.0") | out.contains("13: 0.0, -9.999999999"));
|
Assert.assertTrue(out.contains("13: 0.0, -10.0") || out.contains("13: 0.0, -9.999999999"));
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("14: 0.0, 0.0") | out.contains("14: 0.0, -0.0"));
|
Assert.assertTrue(out.contains("14: 0.0, 0.0") || out.contains("14: 0.0, -0.0"));
|
||||||
Assert.assertTrue(out.contains("15: 0.0, 1.0") | out.contains("15: 0.0, 0.999999999"));
|
Assert.assertTrue(out.contains("15: 0.0, 1.0") || out.contains("15: 0.0, 0.999999999"));
|
||||||
Assert.assertTrue(out.contains("16: 0.0, 2.0") | out.contains("16: 0.0, 1.999999999"));
|
Assert.assertTrue(out.contains("16: 0.0, 2.0") || out.contains("16: 0.0, 1.999999999"));
|
||||||
Assert.assertTrue(out.contains("17: 0.0, 3.0") | out.contains("17: 0.0, 2.999999999"));
|
Assert.assertTrue(out.contains("17: 0.0, 3.0") || out.contains("17: 0.0, 2.999999999"));
|
||||||
Assert.assertTrue(out.contains("18: 0.0, 4.0") | out.contains("18: 0.0, 3.999999999"));
|
Assert.assertTrue(out.contains("18: 0.0, 4.0") || out.contains("18: 0.0, 3.999999999"));
|
||||||
Assert.assertTrue(out.contains("19: 0.0, 5.0") | out.contains("19: 0.0, 4.999999999"));
|
Assert.assertTrue(out.contains("19: 0.0, 5.0") || out.contains("19: 0.0, 4.999999999"));
|
||||||
Assert.assertTrue(out.contains("20: 0.0, 6.0") | out.contains("20: 0.0, 5.999999999"));
|
Assert.assertTrue(out.contains("20: 0.0, 6.0") || out.contains("20: 0.0, 5.999999999"));
|
||||||
Assert.assertTrue(out.contains("21: 0.0, 7.0") | out.contains("21: 0.0, 6.999999999"));
|
Assert.assertTrue(out.contains("21: 0.0, 7.0") || out.contains("21: 0.0, 6.999999999"));
|
||||||
Assert.assertTrue(out.contains("22: 0.0, 8.0") | out.contains("22: 0.0, 7.999999999"));
|
Assert.assertTrue(out.contains("22: 0.0, 8.0") || out.contains("22: 0.0, 7.999999999"));
|
||||||
Assert.assertTrue(out.contains("23: 0.0, 9.0") | out.contains("23: 0.0, 8.999999999"));
|
Assert.assertTrue(out.contains("23: 0.0, 9.0") || out.contains("23: 0.0, 8.999999999"));
|
||||||
Assert.assertTrue(out.contains("24: 0.0, 10.0") | out.contains("24: 0.0, 9.999999999"));
|
Assert.assertTrue(out.contains("24: 0.0, 10.0") || out.contains("24: 0.0, 9.999999999"));
|
||||||
Assert.assertTrue(out.contains("25: 0.0, 10.0") | out.contains("25: 0.0, 9.999999999"));
|
Assert.assertTrue(out.contains("25: 0.0, 10.0") || out.contains("25: 0.0, 9.999999999"));
|
||||||
Assert.assertTrue(out.contains("26: 0.0, 10.0") | out.contains("26: 0.0, 9.999999999"));
|
Assert.assertTrue(out.contains("26: 0.0, 10.0") || out.contains("26: 0.0, 9.999999999"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,20 +40,20 @@ public class TestRadarTurnRateAndSetAdjust extends RobocodeTestBed {
|
||||||
if (event.getTurnSnapshot().getTurn() == 14) {
|
if (event.getTurnSnapshot().getTurn() == 14) {
|
||||||
final String out = buf.toString();
|
final String out = buf.toString();
|
||||||
|
|
||||||
Assert.assertTrue(out.contains("1: 45.0") | out.contains("1: 44.999999999"));
|
Assert.assertTrue(out.contains("1: 45.0") || out.contains("1: 44.999999999"));
|
||||||
Assert.assertTrue(out.contains("2: 65.0") | out.contains("2: 64.999999999"));
|
Assert.assertTrue(out.contains("2: 65.0") || out.contains("2: 64.999999999"));
|
||||||
Assert.assertTrue(out.contains("3: 75.0") | out.contains("3: 74.999999999"));
|
Assert.assertTrue(out.contains("3: 75.0") || out.contains("3: 74.999999999"));
|
||||||
Assert.assertTrue(out.contains("4: -15.0") | out.contains("4: -14.999999999"));
|
Assert.assertTrue(out.contains("4: -15.0") || out.contains("4: -14.999999999"));
|
||||||
Assert.assertTrue(out.contains("5: -55.0") | out.contains("5: -54.999999999"));
|
Assert.assertTrue(out.contains("5: -55.0") || out.contains("5: -54.999999999"));
|
||||||
Assert.assertTrue(out.contains("6: -75.0") | out.contains("6: -74.999999999"));
|
Assert.assertTrue(out.contains("6: -75.0") || out.contains("6: -74.999999999"));
|
||||||
Assert.assertTrue(out.contains("7: 32.0") | out.contains("7: 31.999999999"));
|
Assert.assertTrue(out.contains("7: 32.0") || out.contains("7: 31.999999999"));
|
||||||
Assert.assertTrue(out.contains("8: 17.0") | out.contains("8: 16.999999999"));
|
Assert.assertTrue(out.contains("8: 17.0") || out.contains("8: 16.999999999"));
|
||||||
Assert.assertTrue(out.contains("9: 35.0") | out.contains("9: 34.999999999"));
|
Assert.assertTrue(out.contains("9: 35.0") || out.contains("9: 34.999999999"));
|
||||||
Assert.assertTrue(out.contains("10: 3.0") | out.contains("10: 2.999999999"));
|
Assert.assertTrue(out.contains("10: 3.0") || out.contains("10: 2.999999999"));
|
||||||
Assert.assertTrue(out.contains("11: -21.0") | out.contains("11: -20.999999999"));
|
Assert.assertTrue(out.contains("11: -21.0") || out.contains("11: -20.999999999"));
|
||||||
Assert.assertTrue(out.contains("12: 75.0") | out.contains("12: 74.999999999"));
|
Assert.assertTrue(out.contains("12: 75.0") || out.contains("12: 74.999999999"));
|
||||||
Assert.assertTrue(out.contains("13: -75.0") | out.contains("13: -74.999999999"));
|
Assert.assertTrue(out.contains("13: -75.0") || out.contains("13: -74.999999999"));
|
||||||
Assert.assertTrue(out.contains("14: -15.0") | out.contains("14: -14.999999999"));
|
Assert.assertTrue(out.contains("14: -15.0") || out.contains("14: -14.999999999"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue