r
/
fifth
1
Fork 0
fifth/examples/replicator.py

36 lines
807 B
Python

"""
B1357/S1357: Replicator
@author: jrpotter
@date: June 02, 2015
"""
if __name__ == '__main__':
import os, sys
sys.path.append(os.path.abspath('src'))
import cam
import ruleset as rs
def replicator(f_index, f_grid, indices, states, *args):
total = sum(f_grid[indices])
if not f_grid[f_index]:
if total % 2 == 1:
return rs.Configuration.ON
else:
if total % 2 == 1:
return rs.Configuration.ON
return rs.Configuration.OFF
c = cam.CAM(1, 100, 2)
c.master[49:51, 49:51] = rs.Configuration.ON
r = rs.Ruleset(rs.Ruleset.Method.SATISFY)
offsets = rs.Configuration.moore(c.master)
r.addConfiguration(c.master, replicator, offsets)
c.start_plot(100, r, lambda *args: True)