cellular_automata.lua
local primitives = require('forma.primitives')
local subpattern = require('forma.subpattern')
local automata = require('forma.automata')
local neighbourhood = require('forma.neighbourhood')
local sq = primitives.square(80,20)
local ca = subpattern.random(sq, 800)
local moore = automata.rule(neighbourhood.moore(), "B5678/S45678")
local ite, converged = 0, false
while converged == false and ite < 1000 do
ca, converged = automata.iterate(ca, sq, {moore})
ite = ite+1
end
subpattern.print_patterns(sq, {ca}, {'#'})