Class MultistateCyclicHROT

java.lang.Object
All Implemented Interfaces:
ApgtableGeneratable, java.lang.Cloneable

public class MultistateCyclicHROT
extends BaseHROT
implements ApgtableGeneratable
Implements the multi-state cyclic HROT rulespace
  • Constructor Details

    • MultistateCyclicHROT

      public MultistateCyclicHROT()
      Constructs Yoel's Gluonic rule
    • MultistateCyclicHROT

      public MultistateCyclicHROT​(java.lang.String rulestring)
      Creates a multi-state cyclic HROT rule with the given rulestring
      Parameters:
      rulestring - The rulestring of the multi-state cyclic HROT rule to be created
      Throws:
      java.lang.IllegalArgumentException - Thrown if the rulestring is invalid
  • Method Details

    • fromRulestring

      protected void fromRulestring​(java.lang.String rulestring)
      Description copied from class: RuleFamily
      Loads the rule's parameters from a rulestring
      Specified by:
      fromRulestring in class RuleFamily
      Parameters:
      rulestring - The rulestring of the rule (eg. B3/S23, R2,C2,S5-9,B7-8,NM)
    • canonise

      public java.lang.String canonise​(java.lang.String rulestring)
      Description copied from class: RuleFamily
      Canonises the inputted rulestring with the currently loaded parameters. This method should be called whenever the parameters of a rule are updated.
      Specified by:
      canonise in class RuleFamily
      Parameters:
      rulestring - The rulestring to canonised
      Returns:
      Canonised rulestring
    • getRegex

      public java.lang.String[] getRegex()
      Description copied from class: RuleFamily
      The regexes that will match a valid rulestring
      Specified by:
      getRegex in class RuleFamily
      Returns:
      An array of regexes that will match a valid rulestring
    • getDescription

      public java.lang.String getDescription()
      Description copied from class: RuleFamily
      Returns a plain text description of the rule family to be displayed in the Rule Dialog
      Specified by:
      getDescription in class RuleFamily
      Returns:
      Description of the rule family
    • generateApgtable

      public RuleDirective[] generateApgtable() throws java.lang.UnsupportedOperationException
      Description copied from interface: ApgtableGeneratable
      Generates an apgtable for apgsearch to use
      Specified by:
      generateApgtable in interface ApgtableGeneratable
      Returns:
      Returns an array of rule directives to be placed in the ruletable
      Throws:
      java.lang.UnsupportedOperationException
    • clone

      public java.lang.Object clone()
      Description copied from class: RuleFamily
      Clones the object
      Specified by:
      clone in class RuleFamily
      Returns:
      A deepcopy of the object
    • transitionFunc

      public int transitionFunc​(int[] neighbours, int cellState, int generations, Coordinate coordinate)
      Description copied from class: Rule
      This method represents the transition function of the rule
      Specified by:
      transitionFunc in class Rule
      Parameters:
      neighbours - The cell's neighbours in the order of the neighbourhood provided
      cellState - The current state of the cell
      generations - The current generation of the simulation
      coordinate - The coordinate of the cell
      Returns:
      The state of the cell in the next generation