C# Extended Neighborhood Emulator Script
Posted: June 5th, 2017, 11:12 pm
This script will generate a rule-table that emulates any totalistic rule in a radius-2 disc (radius 2 Moore without corners) neighborhood. There's still a few things that need to be fixed, such as the rule table being excessively big. Keep in mind that mixing the on-state with count-states will result in weird, unintended behaviors.
Here's an example of the B4/S2,3 rule table
The rule itself isn't very interesting, but its the only one I found that isn't completely boring. There's one spaceship and very few still lives and oscillators. It's pretty tedious looking for rules, but there's likely one that's interesting enough.
Link to the Github Repository: https://github.com/ThatSoundsFun/extend ... d_emulator
EDIT: Changed the rule from B4/S2,3,4 to B4/S2,3 as it had another oscillator. (June 25, 17)
Here's an example of the B4/S2,3 rule table
Code: Select all
@RULE B4_S2,3_D2
States:
00 OFF / OFF_COUNT_0
01 ON
02 OFF_COUNT_1
...
09 OFF_COUNT_8
10 ON_COUNT_0
...
18 ON_COUNT_8
@TABLE
n_states:19
neighborhood:Moore
symmetries:rotate4reflect
#all states
var a0 = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18}
var a1 = a0
var a2 = a0
var a3 = a0
var a4 = a0
var a5 = a0
var a6 = a0
var a7 = a0
#all of the off-counts states
var 0c0 = {0,2,3,4,5,6,7,8,9}
var 0c1 = 0c0
var 0c2 = 0c0
var 0c3 = 0c0
var 0c4 = 0c0
#all of the on-count states
var 1c0 = {10,11,12,13,14,15,16,17,18}
var 1c1 = 1c0
var 1c2 = 1c0
var 1c3 = 1c0
var 1c4 = 1c0
#OFF -> OFF_COUNT_1 when there's 1 neighbor
0,1,0,0,0,0,0,0,0,2
0,0,1,0,0,0,0,0,0,2
#OFF -> OFF_COUNT_2 when there's 2 neighbors
0,1,1,0,0,0,0,0,0,3
0,1,0,1,0,0,0,0,0,3
0,1,0,0,1,0,0,0,0,3
0,1,0,0,0,1,0,0,0,3
0,0,1,0,1,0,0,0,0,3
0,0,1,0,0,0,1,0,0,3
#OFF -> OFF_COUNT_3 when there's 3 neighbors
0,1,1,1,0,0,0,0,0,4
0,1,1,0,1,0,0,0,0,4
0,1,1,0,0,1,0,0,0,4
0,1,1,0,0,0,1,0,0,4
0,1,1,0,0,0,0,1,0,4
0,1,1,0,0,0,0,0,1,4
0,1,0,1,0,1,0,0,0,4
0,1,0,1,0,0,1,0,0,4
0,1,0,0,1,0,1,0,0,4
0,0,1,0,1,0,1,0,0,4
#OFF -> OFF_COUNT_4 when there's 4 neighbors
0,1,1,1,1,0,0,0,0,5
0,1,1,1,0,1,0,0,0,5
0,1,1,1,0,0,1,0,0,5
0,1,1,0,1,1,0,0,0,5
0,1,1,0,1,0,1,0,0,5
0,1,1,0,1,0,0,1,0,5
0,1,1,0,1,0,0,0,1,5
0,1,1,0,0,1,1,0,0,5
0,1,1,0,0,1,0,1,0,5
0,1,1,0,0,1,0,0,1,5
0,1,1,0,0,0,1,1,0,5
0,1,0,1,0,1,0,1,0,5
0,0,1,0,1,0,1,0,1,5
#ON -> OFF_COUNT_5 when there's 5 neighbors
0,1,1,1,1,1,0,0,0,6
0,1,1,1,1,0,1,0,0,6
0,1,1,1,1,0,0,1,0,6
0,1,1,1,1,0,0,0,1,6
0,1,1,1,0,1,1,0,0,6
0,1,1,1,0,1,0,1,0,6
0,1,1,0,1,1,1,0,0,6
0,1,1,0,1,1,0,1,0,6
0,1,1,0,1,0,1,1,0,6
0,1,1,0,1,0,1,0,1,6
#OFF -> OFF_COUNT_6 when there's 6 neighbors
0,1,1,1,1,1,1,0,0,7
0,1,1,1,1,1,0,1,0,7
0,1,1,1,1,0,1,1,0,7
0,1,1,1,1,0,1,0,1,7
0,1,1,1,0,1,1,1,0,7
0,1,1,0,1,1,1,0,1,7
#OFF -> OFF_COUNT_7 when there's 7 neighbors
0,1,1,1,1,1,1,1,0,8
0,1,1,1,1,1,1,0,1,8
#OFF -> OFF_COUNT_8 when there's 8 neighbors
0,1,1,1,1,1,1,1,1,9
#ON -> ON_COUNT_0 where there's 0 neighbor
1,0,0,0,0,0,0,0,0,10
#ON -> ON_COUNT_1 where there's 1 neighbor
1,1,0,0,0,0,0,0,0,11
1,0,1,0,0,0,0,0,0,11
#ON -> ON_COUNT_2 where there's 2 neighbors
1,1,1,0,0,0,0,0,0,12
1,1,0,1,0,0,0,0,0,12
1,1,0,0,1,0,0,0,0,12
1,1,0,0,0,1,0,0,0,12
1,0,1,0,1,0,0,0,0,12
1,0,1,0,0,0,1,0,0,12
#ON -> ON_COUNT_2 where there's 3 neighbors
1,1,1,1,0,0,0,0,0,13
1,1,1,0,1,0,0,0,0,13
1,1,1,0,0,1,0,0,0,13
1,1,1,0,0,0,1,0,0,13
1,1,1,0,0,0,0,1,0,13
1,1,1,0,0,0,0,0,1,13
1,1,0,1,0,1,0,0,0,13
1,1,0,1,0,0,1,0,0,13
1,1,0,0,1,0,1,0,0,13
1,0,1,0,1,0,1,0,0,13
#ON -> ON_COUNT_4 where there's 4 neighbors
1,1,1,1,1,0,0,0,0,14
1,1,1,1,0,1,0,0,0,14
1,1,1,1,0,0,1,0,0,14
1,1,1,0,1,1,0,0,0,14
1,1,1,0,1,0,1,0,0,14
1,1,1,0,1,0,0,1,0,14
1,1,1,0,1,0,0,0,1,14
1,1,1,0,0,1,1,0,0,14
1,1,1,0,0,1,0,1,0,14
1,1,1,0,0,1,0,0,1,14
1,1,1,0,0,0,1,1,0,14
1,1,0,1,0,1,0,1,0,14
1,0,1,0,1,0,1,0,1,14
#ON -> ON_COUNT_5 where there's 5 neighbors
1,1,1,1,1,1,0,0,0,15
1,1,1,1,1,0,1,0,0,15
1,1,1,1,1,0,0,1,0,15
1,1,1,1,1,0,0,0,1,15
1,1,1,1,0,1,1,0,0,15
1,1,1,1,0,1,0,1,0,15
1,1,1,0,1,1,1,0,0,15
1,1,1,0,1,1,0,1,0,15
1,1,1,0,1,0,1,1,0,15
1,1,1,0,1,0,1,0,1,15
#ON -> ON_COUNT_6 where there's 6 neighbors
1,1,1,1,1,1,1,0,0,16
1,1,1,1,1,1,0,1,0,16
1,1,1,1,1,0,1,1,0,16
1,1,1,1,1,0,1,0,1,16
1,1,1,1,0,1,1,1,0,16
1,1,1,0,1,1,1,0,1,16
#ON -> ON_COUNT_7 where there's 7 neighbors
1,1,1,1,1,1,1,1,0,17
1,1,1,1,1,1,1,0,1,17
#ON -> ON_COUNT_8 where there's 8 neighbors
1,1,1,1,1,1,1,1,1,18
#overrides COUNT_STATES -> OFF
#OFF_COUNT -> ON when there's 4 neighbor(s)
0c0,2,0c1,0,0c2,0,0c3,4,0c4,1
0c0,2,0c1,0,0c2,0,0c3,5,1c4,1
0c0,3,0c1,0,0c2,0,0c3,4,1c4,1
0c0,2,0c1,0,0c2,2,0c3,13,0c4,1
0c0,3,0c1,0,0c2,2,0c3,12,0c4,1
0c0,3,0c1,0,0c2,2,0c3,13,1c4,1
0c0,4,0c1,0,0c2,2,0c3,12,1c4,1
0c0,2,0c1,0,0c2,2,1c3,4,0c4,1
0c0,2,0c1,0,0c2,2,1c3,5,1c4,1
0c0,3,0c1,0,0c2,2,1c3,4,1c4,1
0c0,3,0c1,0,0c2,3,1c3,12,0c4,1
0c0,3,0c1,0,0c2,3,1c3,13,1c4,1
0c0,4,0c1,0,0c2,3,1c3,12,1c4,1
0c0,2,0c1,0,0c2,2,0c3,3,0c4,1
0c0,3,0c1,0,0c2,2,0c3,3,1c4,1
0c0,3,0c1,0,0c2,3,0c3,11,0c4,1
0c0,4,0c1,0,0c2,3,0c3,11,1c4,1
0c0,3,0c1,0,0c2,3,1c3,3,1c4,1
0c0,3,0c1,0,0c2,0,0c3,3,0c4,1
0c0,4,0c1,0,0c2,2,0c3,11,0c4,1
0c0,5,0c1,0,0c2,2,0c3,11,1c4,1
0c0,3,0c1,0,0c2,2,1c3,3,0c4,1
0c0,4,0c1,0,0c2,2,1c3,3,1c4,1
0c0,4,0c1,0,0c2,3,1c3,11,0c4,1
0c0,3,0c1,0,0c2,2,0c3,2,0c4,1
0c0,4,0c1,0,0c2,2,0c3,2,1c4,1
0c0,4,0c1,0,0c2,3,0c3,10,0c4,1
0c0,3,0c1,0,0c2,3,1c3,2,0c4,1
0c0,10,0c1,2,0c2,0,0c3,5,0c4,1
0c0,11,0c1,2,0c2,2,0c3,13,0c4,1
0c0,12,0c1,2,0c2,2,0c3,12,0c4,1
0c0,12,0c1,2,0c2,2,0c3,13,1c4,1
0c0,10,0c1,2,0c2,2,1c3,5,0c4,1
0c0,11,0c1,2,0c2,2,1c3,4,0c4,1
0c0,11,0c1,2,0c2,2,1c3,5,1c4,1
0c0,12,0c1,2,0c2,2,1c3,4,1c4,1
0c0,11,0c1,2,0c2,3,1c3,13,0c4,1
0c0,12,0c1,2,0c2,3,1c3,12,0c4,1
0c0,12,0c1,2,0c2,3,1c3,13,1c4,1
0c0,10,0c1,2,0c2,2,0c3,4,0c4,1
0c0,11,0c1,2,0c2,2,0c3,3,0c4,1
0c0,11,0c1,2,0c2,2,0c3,4,1c4,1
0c0,12,0c1,2,0c2,2,0c3,3,1c4,1
0c0,11,0c1,2,0c2,3,0c3,12,0c4,1
0c0,12,0c1,2,0c2,3,0c3,11,0c4,1
0c0,12,0c1,2,0c2,3,0c3,12,1c4,1
0c0,10,0c1,2,0c2,3,1c3,4,0c4,1
0c0,11,0c1,2,0c2,3,1c3,3,0c4,1
0c0,11,0c1,2,0c2,3,1c3,4,1c4,1
0c0,11,0c1,2,0c2,4,1c3,12,0c4,1
0c0,12,0c1,2,0c2,2,1c3,3,0c4,1
0c0,12,0c1,2,0c2,2,0c3,2,0c4,1
0c0,3,0c1,2,0c2,10,0c3,3,0c4,1
0c0,4,0c1,2,0c2,10,0c3,3,1c4,1
0c0,4,0c1,2,0c2,11,0c3,11,0c4,1
0c0,3,0c1,2,0c2,11,1c3,3,0c4,1
0c0,3,0c1,2,0c2,11,0c3,2,0c4,1
0c0,10,0c1,3,0c2,10,0c3,5,0c4,1
0c0,11,0c1,3,0c2,10,0c3,4,0c4,1
0c0,11,0c1,3,0c2,10,0c3,5,1c4,1
0c0,12,0c1,3,0c2,10,0c3,4,1c4,1
0c0,11,0c1,3,0c2,11,0c3,13,0c4,1
0c0,12,0c1,3,0c2,11,0c3,12,0c4,1
0c0,12,0c1,3,0c2,11,0c3,13,1c4,1
0c0,11,0c1,3,0c2,11,1c3,4,0c4,1
0c0,11,0c1,3,0c2,11,1c3,5,1c4,1
0c0,11,0c1,3,0c2,11,0c3,3,0c4,1
0c0,12,0c1,3,0c2,10,0c3,3,0c4,1
0c0,3,0c1,0,0c2,3,0c3,0,0c4,1
0c0,4,0c1,0,0c2,2,1c3,2,0c4,1
0c0,4,0c1,0,0c2,2,0c3,0,0c4,1
0c0,4,0c1,2,0c2,10,0c3,2,0c4,1
0c0,2,1c1,2,0c2,2,1c3,4,0c4,1
0c0,3,1c1,2,0c2,2,1c3,3,0c4,1
0c0,3,1c1,2,0c2,2,1c3,4,1c4,1
0c0,3,1c1,2,0c2,3,1c3,12,0c4,1
0c0,4,1c1,2,0c2,3,1c3,11,0c4,1
0c0,4,1c1,2,0c2,3,1c3,12,1c4,1
0c0,2,1c1,2,0c2,2,0c3,3,0c4,1
0c0,3,1c1,2,0c2,2,0c3,2,0c4,1
0c0,3,1c1,2,0c2,2,0c3,3,1c4,1
0c0,4,1c1,2,0c2,2,0c3,2,1c4,1
0c0,3,1c1,2,0c2,3,0c3,11,0c4,1
0c0,4,1c1,2,0c2,3,0c3,10,0c4,1
0c0,4,1c1,2,0c2,3,0c3,11,1c4,1
0c0,2,1c1,2,0c2,3,1c3,3,0c4,1
0c0,3,1c1,2,0c2,3,1c3,2,0c4,1
0c0,3,1c1,2,0c2,3,1c3,3,1c4,1
0c0,3,1c1,2,0c2,4,1c3,11,0c4,1
0c0,12,1c1,3,0c2,3,1c3,12,0c4,1
0c0,11,1c1,3,0c2,2,0c3,3,0c4,1
0c0,12,1c1,3,0c2,2,0c3,3,1c4,1
0c0,12,1c1,3,0c2,3,0c3,11,0c4,1
0c0,11,1c1,3,0c2,3,1c3,3,0c4,1
0c0,2,1c1,3,0c2,10,0c3,4,0c4,1
0c0,3,1c1,3,0c2,10,0c3,3,0c4,1
0c0,3,1c1,3,0c2,10,0c3,4,1c4,1
0c0,4,1c1,3,0c2,10,0c3,3,1c4,1
0c0,3,1c1,3,0c2,11,0c3,12,0c4,1
0c0,4,1c1,3,0c2,11,0c3,11,0c4,1
0c0,4,1c1,3,0c2,11,0c3,12,1c4,1
0c0,3,1c1,3,0c2,11,1c3,4,1c4,1
0c0,3,1c1,3,0c2,12,1c3,12,0c4,1
0c0,3,1c1,3,0c2,11,0c3,3,1c4,1
0c0,11,1c1,4,0c2,10,0c3,4,0c4,1
0c0,12,1c1,4,0c2,10,0c3,4,1c4,1
0c0,12,1c1,4,0c2,11,0c3,12,0c4,1
0c0,11,1c1,4,0c2,11,1c3,4,0c4,1
0c0,3,1c1,2,0c2,3,0c3,2,1c4,1
0c0,3,0c1,10,0c2,3,0c3,2,0c4,1
0c0,4,0c1,10,0c2,4,0c3,10,0c4,1
0c0,11,0c1,11,0c2,3,0c3,3,0c4,1
0c0,12,0c1,11,0c2,4,0c3,11,0c4,1
0c0,12,0c1,12,0c2,12,0c3,12,0c4,1
0c0,3,1c1,3,1c2,3,1c3,3,1c4,1
0c0,2,0c1,2,0c2,2,0c3,2,0c4,1
#overrides COUNT_STATES -> OFF
#ON_COUNT -> ON when there's 2 neighbor(s)
1c0,2,0c1,2,0c2,2,0c3,4,0c4,1
1c0,3,0c1,2,0c2,2,0c3,3,0c4,1
1c0,3,0c1,2,0c2,2,0c3,4,1c4,1
1c0,3,0c1,2,0c2,3,0c3,12,0c4,1
1c0,4,0c1,2,0c2,3,0c3,11,0c4,1
1c0,4,0c1,2,0c2,3,0c3,12,1c4,1
1c0,3,0c1,2,0c2,3,1c3,3,0c4,1
1c0,3,0c1,2,0c2,3,1c3,4,1c4,1
1c0,3,0c1,2,0c2,3,0c3,2,0c4,1
1c0,12,0c1,3,0c2,3,0c3,12,0c4,1
1c0,11,0c1,3,0c2,3,1c3,4,0c4,1
1c0,11,0c1,3,0c2,3,0c3,3,0c4,1
1c0,11,0c1,4,0c2,11,0c3,4,0c4,1
1c0,3,1c1,3,0c2,3,1c3,3,0c4,1
#overrides COUNT_STATES -> OFF
#ON_COUNT -> ON when there's 3 neighbor(s)
1c0,2,0c1,2,0c2,2,0c3,5,0c4,1
1c0,3,0c1,2,0c2,2,0c3,4,0c4,1
1c0,3,0c1,2,0c2,2,0c3,5,1c4,1
1c0,4,0c1,2,0c2,2,0c3,4,1c4,1
1c0,3,0c1,2,0c2,3,0c3,13,0c4,1
1c0,4,0c1,2,0c2,3,0c3,12,0c4,1
1c0,4,0c1,2,0c2,3,0c3,13,1c4,1
1c0,5,0c1,2,0c2,3,0c3,12,1c4,1
1c0,3,0c1,2,0c2,3,1c3,4,0c4,1
1c0,3,0c1,2,0c2,3,1c3,5,1c4,1
1c0,4,0c1,2,0c2,3,1c3,4,1c4,1
1c0,4,0c1,2,0c2,4,1c3,12,0c4,1
1c0,4,0c1,2,0c2,4,1c3,13,1c4,1
1c0,3,0c1,2,0c2,3,0c3,3,0c4,1
1c0,4,0c1,2,0c2,3,0c3,3,1c4,1
1c0,4,0c1,2,0c2,4,0c3,11,0c4,1
1c0,5,0c1,2,0c2,3,0c3,11,0c4,1
1c0,4,0c1,2,0c2,3,1c3,3,0c4,1
1c0,4,0c1,2,0c2,3,0c3,2,0c4,1
1c0,12,0c1,3,0c2,3,0c3,13,0c4,1
1c0,13,0c1,3,0c2,3,0c3,13,1c4,1
1c0,11,0c1,3,0c2,3,1c3,5,0c4,1
1c0,12,0c1,3,0c2,3,1c3,4,0c4,1
1c0,12,0c1,3,0c2,3,1c3,5,1c4,1
1c0,12,0c1,3,0c2,4,1c3,13,0c4,1
1c0,11,0c1,3,0c2,3,0c3,4,0c4,1
1c0,12,0c1,3,0c2,3,0c3,3,0c4,1
1c0,12,0c1,3,0c2,3,0c3,4,1c4,1
1c0,12,0c1,3,0c2,4,0c3,12,0c4,1
1c0,11,0c1,3,0c2,4,1c3,4,0c4,1
1c0,4,0c1,3,0c2,11,0c3,3,0c4,1
1c0,11,0c1,4,0c2,11,0c3,5,0c4,1
1c0,12,0c1,4,0c2,11,0c3,4,0c4,1
1c0,12,0c1,4,0c2,11,0c3,5,1c4,1
1c0,12,0c1,4,0c2,12,0c3,13,0c4,1
1c0,3,1c1,3,0c2,3,1c3,4,0c4,1
1c0,4,1c1,3,0c2,3,1c3,4,1c4,1
1c0,4,1c1,3,0c2,4,1c3,12,0c4,1
1c0,3,1c1,3,0c2,3,0c3,3,0c4,1
1c0,4,1c1,3,0c2,3,0c3,3,1c4,1
1c0,4,1c1,3,0c2,4,0c3,11,0c4,1
1c0,4,1c1,4,0c2,11,0c3,4,1c4,1
1c0,4,1c1,4,0c2,12,0c3,12,0c4,1
#overridable
#COUNT_STATES -> OFF
1c0,a0,a1,a2,a3,a4,a5,a6,a7,0
0c0,a0,a1,a2,a3,a4,a5,a6,a7,0
@COLORS
00 0 0 0
01 250 250 250
02 50 50 50
03 50 50 50
04 50 50 50
05 50 50 50
06 50 50 50
07 50 50 50
08 50 50 50
09 50 50 50
10 200 200 200
11 200 200 200
12 200 200 200
13 200 200 200
14 200 200 200
15 200 200 200
16 200 200 200
17 200 200 200
18 200 200 200
Link to the Github Repository: https://github.com/ThatSoundsFun/extend ... d_emulator
EDIT: Changed the rule from B4/S2,3,4 to B4/S2,3 as it had another oscillator. (June 25, 17)