"Extended" Generations rules
Posted: August 1st, 2018, 4:22 pm
Under normal Generations (standard notation S/B/C, a.k.a. survival/birth/"C(?)"), cells are productive or "active" for just one generation, then dormant or "inactive" (and irreversibly so) for C-2 generations until death.
This extension to the concept (conceived on the Discord server by users DigitalCross and later Milo Jacquet) explores the result of changing the amounts of time cells can be active/inactive for, and also of allowing cells to "come back" from inactivity and alternate between being active/inactive an indefinite amount of times before dying.
So the notation decided upon is pretty simple. It's nearly identical to normal Generations notation barring that the last segment specifies ranges of activity/inactivity, starting with the former and then alternating: for example, 23/3/10-8-5 indicates birth on 3 neighbors and survival on 2 or 3, and then that once born a cell will be active for 10 generations, inactive for 8 generations (during which time it will act like a dying Generations cell), then return to activity for 5 generations, then finally die.
A rule cannot have no active states, but it's totally possible to delay things a little by letting cells be born into inactivity; this is notated using a 0 for the first "active" range of states in a rulestring. 23/3/0-8-5, for instance, says that a cell once born will be inactive for 8 generations, active for 5 generations (during which time it'll operate under B3/S23 as above), then die.
This conveniently allows transcription of the "snoitareneG" rule family discussed here. The "sgorF" rule, reverse Frogs, can be notated as 12/34/0-1-1, and normal Frogs (12/34/3) can be notated in turn as 12/34/1-1; in general, a Generations S/B/C rule can be represented here as S/B/1-(C minus 2) and snoitareneG as S/B/0-(C minus 2)-1.
I wrote a Python3 script to generate rulefiles from the above notation as for 83bismuth38's "deficient rules":
The script also accepts input in this format, so copy/pasting a rulename from one of the codeblocks below will yield normal results. Have at it!
This extension to the concept (conceived on the Discord server by users DigitalCross and later Milo Jacquet) explores the result of changing the amounts of time cells can be active/inactive for, and also of allowing cells to "come back" from inactivity and alternate between being active/inactive an indefinite amount of times before dying.
So the notation decided upon is pretty simple. It's nearly identical to normal Generations notation barring that the last segment specifies ranges of activity/inactivity, starting with the former and then alternating: for example, 23/3/10-8-5 indicates birth on 3 neighbors and survival on 2 or 3, and then that once born a cell will be active for 10 generations, inactive for 8 generations (during which time it will act like a dying Generations cell), then return to activity for 5 generations, then finally die.
A rule cannot have no active states, but it's totally possible to delay things a little by letting cells be born into inactivity; this is notated using a 0 for the first "active" range of states in a rulestring. 23/3/0-8-5, for instance, says that a cell once born will be inactive for 8 generations, active for 5 generations (during which time it'll operate under B3/S23 as above), then die.
This conveniently allows transcription of the "snoitareneG" rule family discussed here. The "sgorF" rule, reverse Frogs, can be notated as 12/34/0-1-1, and normal Frogs (12/34/3) can be notated in turn as 12/34/1-1; in general, a Generations S/B/C rule can be represented here as S/B/1-(C minus 2) and snoitareneG as S/B/0-(C minus 2)-1.
I wrote a Python3 script to generate rulefiles from the above notation as for 83bismuth38's "deficient rules":
- A hosted-online script, executable by clicking "Run" up top and following the input prompt:
https://repl.it/@wriight/HarmoniousJovi ... programmer - A downloadable, locally-executable script (takes arguments from command line: first output directory, then rulestring, and then optionally a rulename to override the auto-generated one):
https://gist.github.com/supposedly/9dac ... 332107120d
The script also accepts input in this format, so copy/pasting a rulename from one of the codeblocks below will yield normal results. Have at it!