Well they *kind of* can. The 7x7 loop isn't completely fixed, but I like it.
Code: Select all
@RULE GoucherParticleLoop
#state 0 is blank
#state 1 is tail
#state 2 is head
#state 3 is right reflector
#state 4 is left reflector
#state 5 is construction cell
#state 6 is duplicator
#state 7 is push constructor
#state 8 is right turn
#state 9 is left turn
#state 10 is left and right duplicator constructor
#state 13 is left duplicator constructor
#state 14 is right duplicator constructor
#state 11 is left and right left-turn constructor
#state 12 is "construction done" signal
#state 15 is left and right right-turn constructor
#state 16 is turner+latcher
#state 17 is construction signal
#state 18 is special
#state 19 is special
#state 20 is special
#state 21 is push turn
#state 22 is special push
#state 23 is special constructor
#state 24 is stop special push 1
#state 25 is stop special push 2
#state 26 is separator
#state 27 is stable construction done
#state 28 is double done
#state 29 is death signal
@TABLE
n_states:30
neighborhood:Moore
symmetries:rotate4
var a={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29}
var b={a}
var c={a}
var d={a}
var e={a}
var f={a}
var g={a}
var h={a}
var i={0,3,4,5,6,7,16,18,19}
var j={i}
var k={i}
var l={i}
var m={i}
var n={i}
var o={i}
var p={2,8,9,10,11,13,14,15,17,29}
var q={p}
var r={0,1}
var s={3,4,6,16}
var t={s}
0,1,0,0,1,17,3,0,0,2
0,1,0,0,0,19,0,0,0,17
20,a,b,c,d,e,f,g,h,19
19,a,b,c,d,e,f,g,h,5
0,0,0,17,5,0,0,0,0,0
0,0,0,0,0,0,5,17,0,0
5,2,3,0,0,0,0,0,1,18
18,a,b,c,d,e,f,g,h,0
0,18,0,0,0,0,0,0,0,5
0,17,3,0,0,0,0,0,1,2
0,1,7,0,0,p,0,0,0,12
p,0,7,0,0,1,0,0,0,12
0,1,0,7,0,p,0,0,0,19
0,1,0,0,7,p,0,0,0,17
1,p,7,0,0,0,0,0,0,12
1,p,0,7,0,0,0,0,0,20
1,p,21,7,0,0,0,0,0,20 #
p,0,0,7,0,1,0,0,0,5
12,p,s,0,0,0,0,0,1,0 #
12,p,1,0,0,0,0,0,s,0 #
12,s,0,0,1,2,t,0,0,0 #
12,p,1,0,0,3,0,0,4,0 #
12,p,1,0,0,0,0,0,6,0
12,i,p,j,1,q,k,l,m,12
12,p,1,i,0,1,q,0,0,12
12,i,j,k,l,p,1,m,q,12
12,p,i,j,q,1,k,l,1,12
12,p,i,j,k,q,1,l,1,12
12,p,1,i,1,q,j,k,l,12
12,p,1,i,j,k,l,m,n,12
12,p,1,i,j,k,l,m,n,12
12,p,i,j,k,l,m,n,1,12
12,1,p,i,j,k,l,m,n,12
12,1,i,j,k,l,m,n,p,12
p,1,a,b,c,12,d,e,f,12
p,1,a,b,c,27,d,e,f,12 #
p,1,a,b,c,28,d,e,f,12 #
6,29,a,b,c,d,e,f,12,0
6,p,a,b,c,d,e,f,12,16
6,p,12,b,c,d,e,f,a,16
12,p,a,b,c,d,e,f,g,0
27,p,0,a,b,c,d,e,0,0
p,4,0,0,0,1,0,12,0,12
p,3,0,12,0,1,0,0,0,12
p,6,0,0,0,1,0,12,0,27
p,6,0,12,0,1,0,0,0,27
3,p,a,b,c,d,e,f,12,0
4,p,12,b,c,d,e,f,a,0
1,0,0,8,5,0,0,0,0,12
1,7,0,0,0,0,0,2,0,5
1,a,b,c,d,e,f,g,h,0
p,3,0,12,0,1,0,27,0,12
p,a,b,c,d,e,f,g,h,1
0,6,0,1,0,2,0,0,26,17
0,p,12,i,j,e,l,m,o,p
0,p,0,0,29,27,0,0,0,12 #
0,p,i,j,e,l,m,o,12,p
0,p,0,1,0,6,0,12,0,29 #
0,p,i,c,d,e,f,g,o,p ##
0,p,3,i,j,e,l,m,1,p
#0,17,1,i,m,e,k,j,3,5
0,17,3,i,m,e,k,j,1,2
3,17,a,b,c,d,e,f,g,6
0,p,1,i,m,e,k,j,4,p
16,2,a,b,c,d,e,f,g,3
0,2,16,i,m,e,k,j,1,17
0,p,16,i,m,e,k,j,1,p
0,p,6,i,m,e,j,n,1,p
0,p,1,i,m,e,j,n,6,p
5,2,3,0,0,0,0,0,1,7
5,2,1,0,0,0,0,0,4,7
5,2,6,0,0,0,0,0,1,7
5,2,1,0,0,0,0,0,6,7
5,0,0,0,0,2,0,0,23,12 #
5,2,0,0,c,d,e,0,0,7
7,5,a,b,c,d,e,f,g,12 #
7,1,0,0,0,0,p,0,0,27 #
7,0,12,0,0,r,0,0,p,28 #
7,a,b,c,d,e,f,g,h,0
0,7,0,0,0,0,0,0,0,5
0,7,0,0,0,1,p,0,0,5
0,0,0,7,0,0,1,p,0,5
5,8,0,0,0,0,0,0,0,3
0,8,5,0,0,0,0,0,1,5
5,9,0,0,0,0,0,0,0,4
0,0,0,0,5,9,1,0,0,5
5,10,0,0,0,0,0,0,0,6
0,0,0,0,5,10,1,0,0,5
5,10,0,0,0,0,0,0,0,6
0,10,5,0,0,0,0,0,1,5
5,11,0,0,0,0,0,0,0,4
0,0,0,0,5,11,1,0,0,5
5,11,0,0,0,0,0,0,0,6
0,11,5,0,0,0,0,0,1,5
0,13,1,0,0,0,0,0,5,5
5,13,0,0,0,0,0,0,0,6
5,14,0,0,0,0,0,0,0,6
0,14,5,0,0,0,0,0,1,5
5,15,0,0,0,0,0,0,0,3
0,0,0,0,5,15,1,0,0,5
5,15,0,0,0,0,0,0,0,6
0,15,5,0,0,0,0,0,1,5
#my transitions
#complete loop
5,0,0,1,17,2,0,0,0,21
22,1,0,0,0,23,0,0,6,23 #
21,a,b,c,d,e,f,g,h,0
0,0,0,0,0,21,0,0,0,3
0,0,0,1,0,1,1,21,0,22
22,a,b,c,d,e,f,g,h,1
0,0,0,1,0,0,0,22,0,2
0,17,1,i,m,e,k,j,3,23
23,0,0,0,6,2,1,0,0,22
0,0,0,0,0,22,0,0,0,23
23,0,0,0,0,8,0,0,0,24
24,a,b,c,d,e,f,g,h,1
0,0,0,0,0,24,0,0,0,25
25,a,b,c,d,e,f,g,h,0
0,0,0,0,0,25,0,0,0,5
#resolve collisions
0,7,0,0,0,s,0,0,0,12
0,0,0,s,0,0,0,25,0,12
0,r,0,0,0,7,0,0,3,27
#separate
0,0,0,6,0,1,0,0,0,26
6,0,0,0,0,17,0,26,0,3
26,0,0,6,17,0,0,0,0,0
#constructor signal collision
0,0,0,7,0,0,p,1,0,12
#constructor constructor collision
0,0,0,7,0,0,0,5,0,5
5,a,b,c,d,e,f,7,g,12
#opening loop contact
23,1,0,0,0,23,0,0,6,1
0,6,1,23,23,0,0,0,0,26
#clean up constructors
5,0,0,0,0,0,p,12,0,0
#constructor reflector collision
0,s,0,0,0,1,t,0,0,12
#error
23,0,0,8,0,0,0,1,0,12
#two constructor collision
0,0,0,0,0,7,0,0,23,12
#double done
0,7,0,0,0,7,0,0,0,28
28,p,0,0,0,q,0,0,0,0
#construction signal collision 2
0,0,0,0,0,0,0,p,27,p
#death
s,29,a,b,c,d,e,f,g,0
5,29,a,b,c,d,e,f,g,0
#too close
#22,1,0,0,0,23,0,0,6,23
#reverse interaction
0,0,0,18,0,0,12,0,0,5
#turn into reflector
0,9,1,0,0,3,0,0,5,12
#12,p,1,0,0,3,0,0,4,0
#two one
12,0,0,0,0,0,7,0,0,28
28,p,a,b,c,d,e,f,g,12
#7,0,12,0,0,r,0,0,p,12
#retract advance
#1,3,0,12,0,1,0,27,0,12
#7x7 fix
#5,0,0,0,2,0,0,23,12
@COLORS
1 255 255 255 #white
2 0 0 255 #blue
3 255 0 0 #red
4 122 107 255 #lavender
5 0 255 255 #cyan
6 0 255 0 #green
7 255 64 0 #red-orange
8 255 128 128 #pale red
9 200 150 255 #pale lavender
10 200 255 255 #pale lavender-green
11 122 230 255 #lavender-green
12 133 99 99 #light wood
13 100 200 255 #deep lavender-green
14 255 255 0 #red-green
15 255 255 128 #pale red-green
16 150 0 0 #dark red
17 100 66 66 #medium wood