Elementary cellular automata in Python
Project description
This is a Python implementation of elementary cellular automata.
Installation
Pip
pip install rule_n
Manual
Download rule_n.py and put it somewhere in your Python path.
Usage
import rule_n rule_110 = rule_n.RuleN(110) rule_30 = rule_n.RuleN(30) rule_184 = rule_n.RuleN(184) # Works with anything from 1 to 255 rule_110 = rule_n.RuleN() # Default rule is 110, as that is the most common from rule_n import rule_90 # Shorthand for rule_90 = rule_n.RuleN(90) # Works with 110, 30, 90, 184 # You can also specify a list of rules rule_110 = rule_n.RuleN([False, True, True, False, True, True, True, False]) # Or a string that summarizes the rule rule_110 = rule_n.RuleN("01101110") # See <https://en.wikipedia.org/wiki/Rule_110#Definition> # You can also have a finite canvas rule_110_finite_canvas = rule_n.RuleN(110, canvas_size=5) # A canvas is finite if its size is over 0 data = rule_110.process([True, False, True]) len(data) == 5 # because a False is added to both sides data == [True, True, True, True, False] data_2 = rule_110.process([1, 0, 1]) # You can use any data type, as long data == data_2 # as the boolean values of these are # correct # Return values are always in boolean # With a finite canvas, the output is always as big as the canvas data = rule_110_finite_canvas.process([0, 0, 0, 0, 1]) data == [False, False, False, True, True] data_3 = rule_110([True, False, True]) # Shorthand for # rule_110.process(state) data == data_3 i = 0 for x in rule_110.iterate([1, 0, 1]): # Repeatedly process a state print x i += 1 if i == 10: break # Please do this # Note: Iteration on an infinte canvas seems to have some problems # I recommend using a finite canvas for x in rule_110_finite_canvas.iterate([0, 0, 0, 0, 1]): print x # This breaks automatically if the current state is equal to the # previous, which will probably happen at some point on a finite canvas
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size  File type  Python version  Upload date  Hashes 

Filename, size rule_n0.2.1py2.py3noneany.whl (7.4 kB)  File type Wheel  Python version 2.7  Upload date  Hashes View hashes 
Filename, size rule_n0.2.1.tar.gz (17.8 kB)  File type Source  Python version None  Upload date  Hashes View hashes 
Close
Hashes for rule_n0.2.1py2.py3noneany.whl
Algorithm  Hash digest  

SHA256  fce2e80a79b2823189a71597d7fba5311db2a3124af20ab3cefd1e320571db31 

MD5  43b6821d30593a94a47a2adfb0d44bb8 

BLAKE2256  1e030066e61add1aa7d6663aecaf9a162bca1ebb0fc9011d4982f27c5b00e49b 