I tried to make a construction rule awhile ago. here is a demo pattern and annotated ruletable
Code: Select all
x = 99, y = 60, rule = Compustruct3
3B.B.B.3B.3B.B2.B.2B19.3B.B2.B.3B7.3B2.3B.3B.3B2.3B.3B.3B$B.B.B.B2.B
2.B.B.2B.B.B.B18.B3.B4.B.B3.B3.B.B2.B.B2.B2.B.B2.B.B.B4.B$3B2.B3.B2.
3B.B.2B.B.B18.3B.B2.B.3B2.3B2.2B3.3B2.B2.2B3.3B.B4.B$B3.B.B2.B2.B3.B
2.B.B.B18.B3.B2.B.B5.B3.B.B2.B4.B2.B.B2.B.B.B4.B$3B.B.B2.B2.3B.B2.B.
2B19.B3.2B.B.B9.B2.B.3B2.B2.B2.B.B.B.3B2.B4$4.15A40.15A$3.A4B.C8BA39.
A4B.D8BA$4.14A41.14A10$2.3B.B.B.3B2.B2.B$3.B2.B.B.B.B2.2B.B$3.B2.B.B.
2B3.B.2B$3.B2.B.B.B.B2.B2.B$3.B2.3B.B2.B.B2.B4$4.15A$3.A4B.E8BA$4.14A
11$78.7B$59.20B5.5B$59.B$59.B$59.B$59.B35.4B$50.F9B38.B$59.B38.B$59.B
38.B$17.6A36.B38.B$16.AB.C3BA35.B38.B$16.AB4ABA35.26B3.11B$16.ABA2.A.
A48.B5.B5.B3.B$16.ABA2.AEA48.B5.B5.B3.B$11.6AB4ABA48.B5.B5.B3.B$10.A
8BC.2BA48.B5.B5.B3.B$10.13A49.B5.B5.B3.B$72.7B5.B3.B$84.5B!
@RULE Compustruct3
states:
1 = sheath
2 = inner sheath
3 = extending signal
4 = retracting signal
5 = turning signal
6 = sheather
note : for to reduce the states, retracting also flips a cell (normal retracting is also possible)
@TABLE
n_states:7
neighborhood:Moore
symmetries:rotate4reflect
#signal advance
var s = {3,4,5}
2,1,1,2,1,1,1,s,1,s
s,1,1,2,1,1,1,0,1,0
0,1,1,s,1,1,1,2,1,2
2,1,2,2,1,1,1,s,1,s
2,2,1,1,1,1,1,s,1,s
s,1,2,2,1,1,1,0,1,0
2,2,1,1,1,s,0,1,1,s
#s,2,1,1,1,1,1,0,1,0
s,2,1,1,0,1,1,0,1,0
0,1,2,s,1,1,1,2,1,2
0,s,1,1,0,1,1,2,1,2
#0,s,1,1,1,1,1,2,1,2
s,2,1,1,1,0,2,1,1,0
0,s,1,1,1,2,2,1,1,2
2,2,1,1,0,1,1,s,1,s
2,1,0,1,0,1,1,s,1,s
0,1,1,1,0,1,1,2,1,2
##for retracting###
4,1,0,1,0,1,1,0,1,1
4,1,1,1,0,1,1,0,1,1
1,1,0,2,0,0,1,4,1,4
###################
s,1,0,1,0,1,1,0,1,2
2,s,1,2,1,1,1,2,1,s
s,0,1,1,2,2,2,1,1,0
0,2,1,1,2,s,2,1,1,2
2,1,1,1,0,1,1,s,1,s
s,1,1,1,0,1,1,0,1,0
# signal spliting
2,s,1,1,2,2,2,1,1,s
s,0,1,2,1,1,1,2,1,0
0,2,1,s,1,1,1,s,1,2
2,2,1,2,1,1,1,s,1,s
2,2,1,1,2,s,0,1,1,s
s,2,1,2,1,1,1,0,1,0
####
0,s,1,3,1,1,1,2,1,2
0,s,1,4,1,1,1,2,1,2
0,s,1,5,1,1,1,2,1,2
s,2,1,1,3,0,2,1,1,0
s,2,1,1,4,0,2,1,1,0
s,2,1,1,5,0,2,1,1,0
s,1,1,2,1,1,1,0,3,0
s,1,1,2,1,1,1,0,4,0
s,1,1,2,1,1,1,0,5,0
####
0,s,1,1,0,2,2,1,1,2
0,s,1,1,2,2,2,1,1,2
0,1,1,s,1,1,1,2,0,2
0,1,1,s,1,1,1,2,2,2
2,2,1,1,2,s,1,1,1,s
# extend
1,0,0,0,0,0,1,3,1,6
1,1,0,0,0,0,1,3,1,6
6,1,0,0,0,0,1,0,1,2
0,1,1,6,0,1,1,2,1,2
0,0,0,0,0,6,1,0,0,1
0,0,0,0,0,1,6,0,0,1
0,1,6,1,0,0,0,0,0,1
0,6,1,0,0,0,0,1,2,1
6,1,0,1,0,0,1,2,1,2
0,0,0,0,2,0,6,1,0,1
0,0,0,2,0,0,0,6,1,1
0,6,0,0,0,0,0,1,0,1
6,1,0,0,0,0,1,0,1,2
# retract
#1,0,0,0,1,4,0,1,0,0
1,0,0,0,0,0,1,4,1,4
1,1,0,0,0,0,1,4,1,4
1,0,0,0,0,4,1,1,0,0
0,4,0,0,0,0,0,0,0,2
4,1,0,0,0,0,0,0,0,0
1,0,0,2,0,0,1,4,1,4
4,2,0,0,0,1,0,0,0,0
2,4,0,0,0,0,0,0,0,0
4,0,0,0,0,0,0,1,1,0
1,1,0,2,0,0,1,4,1,1
1,0,0,0,2,1,4,1,0,0
4,0,0,2,0,0,0,1,1,0
2,0,0,1,4,1,2,1,0,1
1,0,0,0,0,4,1,2,0,0
4,1,0,0,0,0,1,1,2,3
4,0,1,1,1,0,0,0,0,0
0,3,0,0,0,0,0,0,0,2
3,0,0,0,0,0,0,1,1,0
1,1,4,0,0,0,0,1,2,0
4,1,1,1,1,0,0,0,0,0
1,0,0,1,1,4,0,1,0,2
2,0,0,0,4,1,2,1,0,1
4,0,0,2,0,0,1,1,2,0
1,4,0,1,1,2,1,1,1,4
0,0,0,2,0,0,0,3,0,2
4,0,0,0,1,2,1,1,0,0
2,4,0,1,1,2,2,1,1,1
1,0,0,4,2,1,1,0,0,0
2,0,0,2,0,0,0,4,0,0
# turn
1,0,0,1,1,5,0,1,0,5
0,0,0,0,1,6,1,0,0,1
0,0,0,0,1,1,6,0,0,1
6,0,0,1,1,2,2,1,0,2
0,0,0,0,1,5,1,0,0,6
#5,0,0,1,1,0,2,1,0,2
0,0,0,6,5,1,1,0,0,6
0,1,6,6,0,0,0,0,0,1
6,0,1,6,5,1,1,0,0,1
0,0,0,0,0,1,5,6,1,1
#6,1,0,0,1,5,1,6,0,2
5,5,1,1,0,1,1,2,1,2
#5,6,0,1,1,5,2,1,6,2
0,0,0,0,0,1,5,6,0,1
6,0,0,0,1,5,1,0,0,0
0,1,0,1,1,5,1,6,0,2
6,0,1,0,5,1,1,0,0,1
5,0,1,1,1,5,2,1,6,2
# sheathing
0,0,0,0,0,6,2,1,0,1
0,0,0,0,0,6,0,0,0,1
6,0,0,0,0,0,1,2,1,2
0,6,0,0,0,2,0,0,0,1
4,1,0,0,0,0,0,0,0,0
0,6,2,0,0,0,0,0,0,1
2,6,0,0,0,2,0,0,0,6
2,6,0,0,0,0,0,0,0,6
6,1,1,1,0,6,0,1,1,2
1,0,0,1,6,1,0,0,0,0
0,1,2,6,6,0,0,0,0,1
6,2,1,0,0,6,0,0,1,2
2,6,0,0,2,2,0,0,0,6
2,6,0,2,0,0,0,0,0,6
2,0,0,2,0,0,0,6,6,6
0,1,0,0,2,6,6,6,2,1
6,2,1,0,6,6,0,0,1,2
0,1,2,6,1,1,0,0,0,1
6,2,1,6,0,1,1,1,1,2
0,6,6,0,0,0,0,1,6,1
0,6,6,0,0,0,1,1,6,1
#6,1,0,6,0,0,1,6,2,2
#0,0,6,6,6,0,0,0,0,1
6,1,0,6,0,1,1,2,1,2
#6,2,1,6,0,1,1,0,1,2
6,1,0,6,0,1,1,2,2,2
6,2,1,0,6,6,0,1,1,2
6,2,1,6,1,1,1,1,1,2
6,1,0,6,0,1,1,6,2,2
6,2,1,1,1,1,1,1,1,2
2,0,0,6,0,0,2,2,2,6
2,2,0,6,0,2,0,0,0,6
2,6,0,2,0,2,0,0,0,6
0,1,0,0,2,2,6,6,6,1
2,6,2,0,0,2,0,0,0,6
2,0,0,2,0,0,2,6,6,6
0,1,6,6,6,0,0,0,0,1
0,6,2,0,0,0,2,6,6,1
6,2,1,1,6,6,0,1,1,2
2,0,0,2,0,0,0,6,1,6
6,2,1,6,1,6,0,1,1,2
6,1,0,6,0,1,6,2,2,2
6,2,6,1,0,6,0,1,1,2
6,1,6,6,6,1,1,2,1,2
6,6,0,0,0,6,1,2,1,2
6,6,0,0,0,2,2,1,0,2
0,0,6,6,6,0,0,0,0,1
6,6,1,1,1,6,1,2,1,2
2,6,0,0,0,0,0,6,0,6
6,6,1,0,0,0,1,6,2,2
0,1,2,6,6,6,2,1,0,1
6,6,1,0,0,0,1,6,0,2
2,2,2,0,0,0,0,6,0,6
2,0,0,2,0,6,6,0,0,6
0,0,0,6,6,6,2,1,0,1
0,6,2,0,0,0,1,6,6,1
@COLORS
1 128 128 128
2 72 100 255
3 0 240 255
4 255 20 20
5 20 200 120
6 255 255 255
7 160 200 80