It's definitely possible to make a ruletable which would emulate the range 4 neighbourhood, but I think it would be better to write a new genus for lifelib rather than try to deal with the complexity of propagating a range 4 neighbourhood through the range 1 Moore neighbourhood.
In the meantime here's a quick and dirty script to simulate this CA in Golly
Code: Select all
-- Range 4 ECA implementation
-- Runs the range 4 rule B3/S23 on the last row of the current pattern
local g = golly()
local gp = require "gplus"
local r = gp.rect(g.getrect())
local y0 = r.bottom
local ngen = 40
-- Very inefficient update function
-- Evolve the ECA on the specified row and place it in the next row
local function update(y, xmin, xmax)
local rn = {0, y, 9, 1}
for x = xmin-2, xmax+2 do
local islive = g.getcell(x,y)
rn[1] = x-4
local neighbours = g.getcells(rn)
local count = #neighbours/2
local state = 0
if islive > 0 then
count = count-1
if count == 2 or count == 3 then
state = 1
end
else
if count == 3 then
state = 1
end
end
if state > 0 then
g.setcell(x, y+1, 1)
end
end
end
for y = y0, y0+ngen do
update(y, r.left-2, r.right+2)
r = gp.rect(g.getrect())
if y > r.bottom then break end
g.update()
end
Has anyone determined the rule number in Wolfram's notation?
Hdjensofjfnen wrote:I am almost 100% sure that a 1xn pattern can't escape a 1xn^2 bounding box.
I'm inclined to agree. I can't prove it, but I just don't see any way for the leading edge of a growing pattern to not end up with an overpopulation condition in the region behind the leading edge which ultimately results in the leading edge dying out due to underpopulation.
I suspect it may be insightful to enumerate all patterns up to a certain size and inspect all those which grow the furthest before stabilising.
Hdjensofjfnen wrote:Would apgsearch be able to differentiate the different objects in range 4?
As well as it can for Larger than Life rules - which is reasonably well.
Edit: Fixed bug in simulation script.
Here are several fuses - 6c/2, 7c/2, and 10c/3:
Code: Select all
x = 181, y = 1, rule = B017/S01
3o3b3o3b3o3b3o3b3o3b3o3b3o3b3o2bo12b3o4b3o4b3o4b3o4b3o4b3o4b3o4b3o2bo
15b2o3b2o3b2o3b2o3b2o3b2o3b2o3b2o3b2o3b2o2b2o!