pal.algorithmics
Class UndoableAction.Utils

java.lang.Object
  extended bypal.algorithmics.UndoableAction.Utils
Enclosing class:
UndoableAction

public static final class UndoableAction.Utils
extends java.lang.Object


Constructor Summary
UndoableAction.Utils()
           
 
Method Summary
static UndoableAction getCombined(UndoableAction[] subActions)
          Create an action that combines multiple actions
static UndoableAction getDistributedSelection(UndoableAction[] subActions, double[] actionProportions)
          Create an action that selects uniformly from a number of sub actions
static UndoableAction getSimpleDesparation(UndoableAction primaryAction, UndoableAction desparateAction, double desparationLimit, int desparationInterval)
          A simple tool for change actions when things get desparate
static UndoableAction getSimpleUniformSelection(UndoableAction[] subActions)
          Create an action that selects uniformly from a number of sub actions
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UndoableAction.Utils

public UndoableAction.Utils()
Method Detail

getSimpleUniformSelection

public static final UndoableAction getSimpleUniformSelection(UndoableAction[] subActions)
Create an action that selects uniformly from a number of sub actions

Parameters:
subActions -
Returns:

getDistributedSelection

public static final UndoableAction getDistributedSelection(UndoableAction[] subActions,
                                                           double[] actionProportions)
Create an action that selects uniformly from a number of sub actions

Parameters:
subActions -
Returns:
Throws:
java.lang.IllegalArgumentException - if action array and proportion arrays are different lengths

getCombined

public static final UndoableAction getCombined(UndoableAction[] subActions)
Create an action that combines multiple actions

Parameters:
subActions - The actions that are do in turn.
Returns:
An action that performs all the sub actions

getSimpleDesparation

public static final UndoableAction getSimpleDesparation(UndoableAction primaryAction,
                                                        UndoableAction desparateAction,
                                                        double desparationLimit,
                                                        int desparationInterval)
A simple tool for change actions when things get desparate

Parameters:
primaryAction - The main action to do when things are going well
desparateAction - The action to do when things get desparate. The desperation value for the desparate action will be scaled according to how much over the limit we are
desparationLimit - The desparate value at which we start doing the desparate action
desparationInterval - The time between desparate actions when we cross the cutoff (a value of one will mean do all the time after desparation value has crossed cutoff)