Some rulestring specification thing
Posted: April 26th, 2021, 12:24 pm
I made a rulestring specification that can simulate some things. It might be terrible.
The transitions for each state are seperated by a |.
A transition consists of many (n):(INT transition list). n is which state to consider. Anything not stated is ignored. An INT transition list just consists of things such as 0123-ac or such. For exmaple, 3:44:3 means "3 of state 4 and 4 of state 3 surrounding a cell".
Instead of B/S, X(n) is used, where (n) is the state to turn into. This is followed by any number of transitions, seperated by dots. If two of these conflict, the one that is first takes precedence.
A default state to transition into is stated first also for each state.
For example, the behaviour of state 0 could be specified as 0X11:3. The 0 indicates that it stays as state 0 by default, the X1 specifies the following transition(s) will indicate a transition into state 1, the 1:3 indicates "3 of state 1". This is equivalent to "B3", effectively.
By extension, any INT rule can be encoded via 0X11:(BIRTH TRANSITIONS)|0X11:(SURVIVAL TRANSITIONS).
Here are some examples of rules:
CGOL: 0X11:3|0X11:23
Wireworld: 0|2|3|3X11:12
Alternating B3/S23 - B4/S56: 0X12:4X21:3|0X21:23|0X12:56
Please inform me of any (non)constructive criticism/thoughts/suggestions you have for/on this.
The transitions for each state are seperated by a |.
A transition consists of many (n):(INT transition list). n is which state to consider. Anything not stated is ignored. An INT transition list just consists of things such as 0123-ac or such. For exmaple, 3:44:3 means "3 of state 4 and 4 of state 3 surrounding a cell".
Instead of B/S, X(n) is used, where (n) is the state to turn into. This is followed by any number of transitions, seperated by dots. If two of these conflict, the one that is first takes precedence.
A default state to transition into is stated first also for each state.
For example, the behaviour of state 0 could be specified as 0X11:3. The 0 indicates that it stays as state 0 by default, the X1 specifies the following transition(s) will indicate a transition into state 1, the 1:3 indicates "3 of state 1". This is equivalent to "B3", effectively.
By extension, any INT rule can be encoded via 0X11:(BIRTH TRANSITIONS)|0X11:(SURVIVAL TRANSITIONS).
Here are some examples of rules:
CGOL: 0X11:3|0X11:23
Wireworld: 0|2|3|3X11:12
Alternating B3/S23 - B4/S56: 0X12:4X21:3|0X21:23|0X12:56
Please inform me of any (non)constructive criticism/thoughts/suggestions you have for/on this.