about B0/non-S8 rules in Generations.
I hadn't done any proper thinking about Generations rules with B0, but of course you can't just use the same two-rule simulation to avoid flickering. For an N-state Generations rule, the entire universe will turn ON and then take N-1 ticks to go back to zero again.
I'll have to think (and it will probably be painful) about whether it's just a matter of running the normal rule for odd states, for N-1 successive ticks instead of just one... while suppressing any births outside the original pattern area somehow, for that whole time.
Don't think it's quite that easy, because the interior of the pattern can still have B0 births occurring at any of those N-1 ticks, which will start a new timer that doesn't line up with the universal countdown. So there might not be any simple inversion rule that works for B0-no-S8 Generations rules.
I'll try to do a more detailed analysis over the weekend and see if there are any sneaky tricks that might work. How exactly does LifeViewer handle those slow-dying Generations cells, again?
Here's an interesting Golly-specific problem that comes up with actual multistate rule tables that include a B0 equivalent. This was my first attempt to simulate the Generations 012/03/23 rule, before I remembered to
Code: Select all
@RULE Generations-with-B03-S012-23states
Rule table simulation of B0 Generations rule, for test purposes
@TABLE
n_states:23
neighborhood:Moore
symmetries:permute
var a={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var b={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var c={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var d={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var e={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var f={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var g={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var h={0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var m={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var n={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var o={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var p={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var q={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var r={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var s={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
var t={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}
# OFF cell turns ON if 0 or 3 ON neighbors
0,a,b,c,d,e,f,g,h,1
0,1,1,1,a,b,c,d,e,1
# ON cells remain ON if 0, 1, or 2 neighbors
1,a,b,c,d,e,f,g,h,1
1,1,a,b,c,d,e,f,g,1
1,1,1,a,b,c,d,e,f,1
# otherwise ON cells become slowly-dying OFF cells
1,m,n,o,p,q,r,s,t,2
2,m,n,o,p,q,r,s,t,3
3,m,n,o,p,q,r,s,t,4
4,m,n,o,p,q,r,s,t,5
5,m,n,o,p,q,r,s,t,6
6,m,n,o,p,q,r,s,t,7
7,m,n,o,p,q,r,s,t,8
8,m,n,o,p,q,r,s,t,9
9,m,n,o,p,q,r,s,t,10
10,m,n,o,p,q,r,s,t,11
11,m,n,o,p,q,r,s,t,12
12,m,n,o,p,q,r,s,t,13
13,m,n,o,p,q,r,s,t,14
14,m,n,o,p,q,r,s,t,15
15,m,n,o,p,q,r,s,t,16
16,m,n,o,p,q,r,s,t,17
17,m,n,o,p,q,r,s,t,18
18,m,n,o,p,q,r,s,t,19
19,m,n,o,p,q,r,s,t,20
20,m,n,o,p,q,r,s,t,21
21,m,n,o,p,q,r,s,t,22
22,m,n,o,p,q,r,s,t,0
Run it with the spacebar for one tick at a time and watch how the population grows, even with a bounded grid set.
Not sure if anything can or should be done about this -- throw an error when parsing the rule table, possibly, since the alternative seems to be a near-lockup of Golly after a few ticks.