First off, I saw the discussion of life with suppressors (as taken from LifeHistory), and decided to up the ante a bit by adding "white holes", which force any nearby cells on. To resolve what happens to cells near both a white hole and a suppressor ("black hole"), the latter now only force adjacent living cells to be off, and similarly white holes only force off cells to be on. (Any space cell adjacent to both a black hole and a white hole will thus perforce oscillate at p2.) Here's the rule table:
Code: Select all
# LifeForce
# Life with black holes and white holes
# state 0: off
# state 1: on
# state 2: black hole (nearby on > off)
# state 3: white hole (nearby off > on)
#
n_states:4
neighborhood:Moore
symmetries:permute
var a={0,1,2,3}
var b={a}
var c={a}
var d={a}
var e={a}
var f={a}
var g={a}
var h={a}
var i={0,2,3}
var j={i}
var k={i}
var l={i}
var m={i}
var n={i}
# black hole
1,2,a,b,c,d,e,f,g,0
# white hole
0,3,a,b,c,d,e,f,g,1
# 2-neighbor survival
1,1,1,i,j,k,l,m,n,1
# 3-neighbor survival
1,1,1,1,i,j,k,l,m,1
# 3-neighbor birth
0,1,1,1,i,j,k,l,m,1
# death otherwise
1,a,b,c,d,e,f,g,h,0The "heart", a simple p4 with one white hole:
Code: Select all
x = 4, y = 4, rule = LifeForce
2A$3A$AC2A$4A!Code: Select all
x = 6, y = 6, rule = LifeForce
5.C5$C!Code: Select all
x = 9, y = 1, rule = LifeForce
B3.C3.B!Code: Select all
x = 3, y = 4, rule = LifeForce
2C3$.2C!Code: Select all
x = 7, y = 2, rule = LifeForce
.C3.C$C5.C!Code: Select all
x = 3, y = 2, rule = LifeForce
2.C$2C!These junk generators ("dirty guns?") are also good for producing pseudo-random variation within a small space. Things like rake colliders or line puffers have the problem that the population grows about linearly; but here, it stays much more put, and so calculating millions of generations won't be an issue even on an older computer.
Some of them can also be considered "B guns" etc. that could be easily cleaned up with some standard circuitry, like the p124 engine here:
Code: Select all
x = 4, y = 3, rule = LifeForce
3.C$.2C$C!Code: Select all
x = 2, y = 2, rule = LifeForce
CB$.C!Code: Select all
x = 4, y = 4, rule = LifeForce
3.B3$C!Code: Select all
x = 3, y = 3, rule = LifeForce
C.C2$C.C!