Package application.model.rules.misc
Class Euclidean
java.lang.Object
application.model.rules.Rule
application.model.rules.RuleFamily
application.model.rules.misc.Euclidean
- All Implemented Interfaces:
java.lang.Cloneable
public class Euclidean extends RuleFamily
Implements euclidean cellular automaton which has an infinite neighbourhood with weights that
drop off with f(r) where r is the euclidean / manhattan distance
TODO (Fix freaking floating-point summation)
-
Field Summary
Fields inherited from class application.model.rules.Rule
alternatingPeriod, background, boundedGrid, numStates, readingOrder, tiling -
Constructor Summary
-
Method Summary
Modifier and Type Method Description java.lang.Stringcanonise(java.lang.String rulestring)Canonises the inputted rulestring with the currently loaded parameters.java.lang.Objectclone()Clones the objectprotected voidfromRulestring(java.lang.String rulestring)Loads the rule's parameters from a rulestringjava.lang.StringgetDescription()Returns a plain text description of the rule family to be displayed in the Rule DialogCoordinate[]getNeighbourhood(int generation)This method returns the neighbourhood of a given cell at a certain generationjava.lang.String[]getRegex()The regexes that will match a valid rulestringvoidstep(Grid grid, java.util.ArrayList<java.util.Set<Coordinate>> cellsChanged, int generation, java.util.function.Function<Coordinate,java.lang.Boolean> step)Steps the grid provided forward one generationinttransitionFunc(int[] neighbours, int cellState, int generations, Coordinate coordinate)This method represents the transition function of the ruleMethods inherited from class application.model.rules.RuleFamily
equals, generateComments, getName, getNeighbourList, getRuleInfo, getRulestring, hashCode, loadComments, setRulestring, toString, updateBackgroundMethods inherited from class application.model.rules.Rule
convertState, dependsOnNeighbours, getAlternatingPeriod, getBoundedGrid, getColour, getName, getNeighbourhood, getNumStates, getTiling, setBackground, setBoundedGrid, setReadingOrder
-
Constructor Details
-
Method Details
-
fromRulestring
protected void fromRulestring(java.lang.String rulestring)Description copied from class:RuleFamilyLoads the rule's parameters from a rulestring- Specified by:
fromRulestringin classRuleFamily- 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:RuleFamilyCanonises the inputted rulestring with the currently loaded parameters. This method should be called whenever the parameters of a rule are updated.- Specified by:
canonisein classRuleFamily- Parameters:
rulestring- The rulestring to canonised- Returns:
- Canonised rulestring
-
getRegex
public java.lang.String[] getRegex()Description copied from class:RuleFamilyThe regexes that will match a valid rulestring- Specified by:
getRegexin classRuleFamily- Returns:
- An array of regexes that will match a valid rulestring
-
getDescription
public java.lang.String getDescription()Description copied from class:RuleFamilyReturns a plain text description of the rule family to be displayed in the Rule Dialog- Specified by:
getDescriptionin classRuleFamily- Returns:
- Description of the rule family
-
clone
public java.lang.Object clone()Description copied from class:RuleFamilyClones the object- Specified by:
clonein classRuleFamily- Returns:
- A deepcopy of the object
-
getNeighbourhood
Description copied from class:RuleThis method returns the neighbourhood of a given cell at a certain generation- Specified by:
getNeighbourhoodin classRule- Parameters:
generation- The generation of the simulation- Returns:
- A list of Coordinates that represent the neighbourhood
-
transitionFunc
Description copied from class:RuleThis method represents the transition function of the rule- Specified by:
transitionFuncin classRule- Parameters:
neighbours- The cell's neighbours in the order of the neighbourhood providedcellState- The current state of the cellgenerations- The current generation of the simulationcoordinate- The coordinate of the cell- Returns:
- The state of the cell in the next generation
-
step
public void step(Grid grid, java.util.ArrayList<java.util.Set<Coordinate>> cellsChanged, int generation, java.util.function.Function<Coordinate,java.lang.Boolean> step) throws java.lang.IllegalArgumentExceptionDescription copied from class:RuleSteps the grid provided forward one generation- Overrides:
stepin classRule- Parameters:
grid- The grid that will be stepped forward one generationcellsChanged- An array of sets that contains the cells the changed in the previous generations. The first entry will contains the cells that changed in the previous generation and the next entry will contain the cells that changed the previous previous generation and so on. It should be the same length as the alternating period of the rulegeneration- The current generation of the simulationstep- A function that returns whether the cell at that coordinate should be stepped forward.- Throws:
java.lang.IllegalArgumentException- Thrown if the length of cellsChanged is not the same as the alternating period
-