Compare commits

..

15 Commits

Author SHA1 Message Date
zhoudaxia ba97cf4450 严重代码修改 2016-09-02 00:54:01 +08:00
zhoudaxia ce72ad8a55 修改严重代码 2016-09-02 00:30:59 +08:00
zhoudaxia 15f56c9d26 修改严重代码 2016-09-01 23:18:28 +08:00
zhoudaxia 428f63be82 修改严重代码 2016-09-01 23:11:51 +08:00
zhoudaxia 37cb8ae223 修改严重问题 2016-09-01 22:46:26 +08:00
zhoudaxia 01614f6152 修改严重问题 2016-09-01 22:45:59 +08:00
zhoudaxia 711da1c2e4 修改严重代码 2016-09-01 22:29:29 +08:00
zhoudaxia 728a702a9d 修改严重问题 2016-09-01 22:20:58 +08:00
zhoudaxia 18653a1fe4 修改严重问题 2016-09-01 22:12:06 +08:00
zhoudaxia cf4255bf7f 修改严重问题 2016-09-01 22:00:49 +08:00
zhoudaxia 3f28bbc589 修改严重问题 2016-09-01 21:50:46 +08:00
zhoudaxia 289fd3897e 修改严重问题 2016-09-01 21:29:30 +08:00
zhoudaxia db49a0302a 修改严重问题 2016-09-01 21:01:57 +08:00
zhoudaxia 167ade0f7b 修改严重问题 2016-09-01 20:51:23 +08:00
zhoudaxia 1ccaad8189 修改重要问题 2016-09-01 20:31:05 +08:00
147 changed files with 3026 additions and 528 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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);
} }

View File

@ -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");
} }

View File

@ -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"));
} }
} }
} }

View File

@ -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();

View File

@ -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);

View File

@ -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);
} }
} }

View File

@ -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();
} }

View File

@ -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;
} }

View File

@ -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);

View File

@ -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

View File

@ -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();
} }
/** /**

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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"); {

View File

@ -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;

View File

@ -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();

View File

@ -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);

View File

@ -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());
} }
} }

View File

@ -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);
} }
} }

View File

@ -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
;
} }
} }

View File

@ -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;

View File

@ -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);

View File

@ -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();
} }

View File

@ -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!");
} }

View File

@ -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);
} }
} }

View File

@ -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")) {

View 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);
} }
} }
} }

View File

@ -259,7 +259,7 @@ public class RobotFileSystemManager {
updateDataFilesFromJar(); updateDataFilesFromJar();
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); LOGGER.log("context", e);
} }
} }

View File

@ -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();

View File

@ -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;
} }

View File

@ -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

View File

@ -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;
} }

View File

@ -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.
} }

View File

@ -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;
} }
} }

View File

@ -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();
} }
} }

View File

@ -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 ";

View File

@ -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 {

View File

@ -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) {

View File

@ -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);

View File

@ -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);

View File

@ -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());
} }
} }

View File

@ -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);

View File

@ -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;

View File

@ -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);
} }
} }
} }

View File

@ -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);
} }
} }
} }

View File

@ -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;

View File

@ -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);
} }
} }
} }

View File

@ -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;

View File

@ -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();

View File

@ -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();
} }
} }

View File

@ -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);
} }
} }

View File

@ -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));
} }
} }

View File

@ -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);
} }
} }

View File

@ -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);
} }
} }
} }

View File

@ -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);
} }
} }
} }

View File

@ -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();
} }
} }

View File

@ -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) {

View File

@ -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) {}
} }
} }

View File

@ -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);
} }
} }

View File

@ -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 {

View File

@ -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) {

View File

@ -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);
} }
} }
} }

View File

@ -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);
} }
} }
} }

View File

@ -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);
} }
} }
} }

View File

@ -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);
} }
} }
} }

View File

@ -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 {

View File

@ -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);
} }

View File

@ -51,8 +51,8 @@ public class ThreadGroupAttack extends Robot {
} }
} }
}).start(); }).start();
} catch (Throwable t) { } catch (RuntimeException t) {
t.printStackTrace(out); LOGGER.log("context", t);
} }
} }

View File

@ -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);

View File

@ -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();
} }
} }

View File

@ -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);
} }
} }

View File

@ -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);

View File

@ -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);
} }

View File

@ -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:

View File

@ -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"));
} }
} }
} }

View File

@ -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"));
} }
} }
} }

View File

@ -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"));
} }
} }
} }

View File

@ -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