robocode
Class Condition

java.lang.Object
  extended by robocode.Condition
Direct Known Subclasses:
GunTurnCompleteCondition, MoveCompleteCondition, RadarTurnCompleteCondition, TurnCompleteCondition

public abstract class Condition
extends Object

Condition is used to define custom waitFor(Condition) and custom events for an AdvancedRobot. The code below is taken from the sample robot named sample.Target. See the sample/Target.java for details.

   addCustomEvent(
       new Condition("triggerhit") {
           public boolean test() {
               return (getEnergy() <= trigger);
           };
       }
   );
 
You should note that by extending Condition this way, you are actually creating an inner class -- so if you distribute your robot, there will be multiple class files. (i.e. Target$1.class)

Author:
Mathew A. Nelson (original), Flemming N. Larsen (contributor), Nathaniel Troutman (contributor)
See Also:
AdvancedRobot.waitFor(Condition), AdvancedRobot.addCustomEvent(Condition), AdvancedRobot.removeCustomEvent(Condition), AdvancedRobot.onCustomEvent(CustomEvent)

Field Summary
 String name
          The name of this condition.
 int priority
          The priority of this condition.
 
Constructor Summary
Condition()
          Creates a new, unnamed Condition with the default priority, which is 80.
Condition(String name)
          Creates a new Condition with the specified name, and default priority, which is 80.
Condition(String name, int priority)
          Creates a new Condition with the specified name and priority.
 
Method Summary
 void cleanup()
          Called by the system in order to clean up references to internal objects.
 String getName()
          Returns the name of this condition.
 int getPriority()
          Returns the priority of this condition.
 void setName(String newName)
          Sets the name of this condition.
 void setPriority(int newPriority)
          Sets the priority of this condition.
abstract  boolean test()
          Overriding the test() method is the point of a Condition.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

priority

public int priority
The priority of this condition. Defaults to 80.


name

public String name
The name of this condition.

Constructor Detail

Condition

public Condition()
Creates a new, unnamed Condition with the default priority, which is 80.


Condition

public Condition(String name)
Creates a new Condition with the specified name, and default priority, which is 80.

Parameters:
name - the name for the new Condition

Condition

public Condition(String name,
                 int priority)
Creates a new Condition with the specified name and priority. A condition priority is a value from 0 - 99. The higher value, the higher priority. The default priority is 80.

Parameters:
name - the name for the new condition
priority - the priority of the new condition
Method Detail

getName

public String getName()
Returns the name of this condition.

Returns:
the name of this condition

getPriority

public final int getPriority()
Returns the priority of this condition. A condition priority is a value from 0 - 99. The higher value, the higher priority. The default priority is 80.

Returns:
the priority of this condition

setName

public void setName(String newName)
Sets the name of this condition.

Parameters:
newName - the new name of this condition

setPriority

public void setPriority(int newPriority)
Sets the priority of this condition. A condition priority is a value from 0 - 99. The higher value, the higher priority. The default priority is 80.

Parameters:
newPriority - the new priority of this condition.

test

public abstract boolean test()
Overriding the test() method is the point of a Condition. The game will call your test() function, and take action if it returns true. This is valid for both AdvancedRobot.waitFor(robocode.Condition) and AdvancedRobot.addCustomEvent(robocode.Condition).

You may not take any actions inside of test().

Returns:
true if the condition has been met, false otherwise.

cleanup

public void cleanup()
Called by the system in order to clean up references to internal objects.

Since:
1.4.3


Copyright © 2013 Robocode. All Rights Reserved.