Class OneDimensional

java.lang.Object
application.model.rules.Rule
application.model.rules.RuleFamily
application.model.rules.misc.OneDimensional
All Implemented Interfaces:
java.lang.Cloneable

public class OneDimensional
extends RuleFamily
Represents a 1D cellular automaton rule
  • Constructor Details

    • OneDimensional

      public OneDimensional()
      Creates the rule W110
    • OneDimensional

      public OneDimensional​(java.lang.String rulestring)
      Creates a 1D rule based on the provided rulestring
      Parameters:
      rulestring - The rulestring of the 1D rule
  • Method Details

    • fromRulestring

      protected void fromRulestring​(java.lang.String rulestring)
      Loads the 1D rule's parameters from a rulestring
      Specified by:
      fromRulestring in class RuleFamily
      Parameters:
      rulestring - The rulestring of the 1D rule (e.g. W110, R1,C3,W1902)
      Throws:
      java.lang.IllegalArgumentException - Thrown if the rulestring is invalid
    • 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
    • updateBackground

      public void updateBackground()
      Description copied from class: RuleFamily
      Updates the background of the rule based on the loaded parameters. This method should be called whenever the parameters of a rule are updated. For non-strobing rules, the background is {0}.
      Overrides:
      updateBackground in class RuleFamily
    • 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
    • clone

      public java.lang.Object clone()
      Gets the deep copy of the 1D rule
      Specified by:
      clone in class RuleFamily
      Returns:
      Returns a deep copy of the 1D rule
    • getNeighbourhood

      public Coordinate[] getNeighbourhood​(int generation)
      Gets the neighbourhood of the 1D rule
      Specified by:
      getNeighbourhood in class Rule
      Parameters:
      generation - The generation of the simulation
      Returns:
      Returns the neighbourhood of the 1D rule
    • 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