Code: Select all
@RULE Life2Wire#3
@TABLE
n_states:28
neighborhood:Moore
symmetries:permute
var Aa={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}
var Ab={Aa}
var Ac={Aa}
var Ad={Aa}
var Ae={Aa}
var Af={Aa}
var Ag={Aa}
var Ah={Aa}
var Da={0,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}
var Db={Da}
var Dc={Da}
var Dd={Da}
var De={Da}
var Df={Da}
var Dg={Da}
# M = off/tail
# N = on/head
var Ma={0,2,5,13,15,17,19,21,23,24,25,26}
var Mb={Ma}
var Mc={Ma}
var Md={Ma}
var Me={Ma}
var Mf={Ma}
var Mg={Ma}
var Na={0,3,4,14,16,18,20,22,23,24,25,26}
var Nb={Na}
var Nc={Na}
var Nd={Na}
var Ne={Na}
var Nf={Na}
var Ng={Na}
var $a={0,1}
var $b={0,1}
var $c={0,1}
var $d={0,1}
var $e={0,1}
var $f={0,1}
var $g={0,1}
var on={16,18,20,22}
var off={15,17,19,21}
var s01={13,26,23}
var s02={s01}
var s11={14,24,25}
var s12={s11}
# m = substrate off / tail
# n = substrate on / head
var ma={0,23,26,15,16,17,20,21,13,2,3,4,5}
var mb={ma}
var mc={ma}
var md={ma}
var me={ma}
var mf={ma}
var mg={ma}
var na={0,24,25,18,19,22,14,2,3,4,5}
var nb={na}
var nc={na}
var nd={na}
var ne={na}
var nf={na}
var ng={na}
var H={14,24}
var T={13,26}
3,4,27,17,18,Ab,Ac,Ad,Ae,4
5,2,27,17,18,Ab,Ac,Ad,Ae,2
3,5,27,17,18,Ab,Ac,Ad,Ae,3
5,3,27,17,18,Ab,Ac,Ad,Ae,5
3,3,27,17,18,Ab,Ac,Ad,Ae,4
5,5,27,17,18,Ab,Ac,Ad,Ae,2
2,2,27,17,18,Ab,Ac,Ad,Ae,2
4,4,27,17,18,Ab,Ac,Ad,Ae,4
3,5,27,17,Ab,Ac,Ad,Ae,Af,3
3,2,27,17,Ab,Ac,Ad,Ae,Af,5
5,3,27,17,Ab,Ac,Ad,Ae,Af,2
5,3,27,18,Ab,Ac,Ad,Ae,Af,5
5,4,27,18,Ab,Ac,Ad,Ae,Af,3
3,5,27,18,Ab,Ac,Ad,Ae,Af,4
# dead forcer
1,10,Aa,Ab,Ac,Ad,Ae,Af,Ag,0
# normal life
0,1,1,1,Da,Db,Dc,Dd,De,1
1,1,1,Aa,Da,Db,Dc,Dd,De,1
1,Aa,Ab,Ac,Ad,Ae,Af,Ag,Ah,0
#=== fliter: single wire ===
3,11,Aa,Ab,Ac,Ad,Ae,Af,Ag,5
5,12,Aa,Ab,Ac,Ad,Ae,Af,Ag,3
24,11,Aa,Ab,Ac,Ad,Ae,Af,Ag,26
26,12,Aa,Ab,Ac,Ad,Ae,Af,Ag,24
#=== to wire ===
6,1,Aa,Ab,Ac,Ad,Ae,Af,Ag,7
7,0,Da,Db,Dc,Dd,De,Df,Dg,6
2,7,Aa,Ab,Ac,Ad,Ae,Af,Ag,3
3,7,Aa,Ab,Ac,Ad,Ae,Af,Ag,4
5,7,Aa,Ab,Ac,Ad,Ae,Af,Ag,3
4,6,Aa,Ab,Ac,Ad,Ae,Af,Ag,5
5,6,Aa,Ab,Ac,Ad,Ae,Af,Ag,2
3,6,Aa,Ab,Ac,Ad,Ae,Af,Ag,5
#=== sub strate ===
#= packed signal =
23,H,Aa,Ab,Ac,Ad,Ae,Af,Ag,24
24,T,ma,mb,mc,md,me,mf,mg,26
24,Aa,Ab,Ac,Ad,Ae,Af,Ag,Ah,25
25,T,Aa,Ab,Ac,Ad,Ae,Af,Ag,26
26,H,na,nb,nc,nd,ne,nf,ng,24
26,Aa,Ab,Ac,Ad,Ae,Af,Ag,Ah,23
#=== from wire ===
3,8,Ma,Mb,Mc,Md,Me,Mf,Mg,5
5,9,Na,Nb,Nc,Nd,Ne,Nf,Ng,3
8,3,Aa,Ab,Ac,Ad,Ae,Af,Ag,9
8,4,Aa,Ab,Ac,Ad,Ae,Af,Ag,9
9,5,Aa,Ab,Ac,Ad,Ae,Af,Ag,8
9,6,Aa,Ab,Ac,Ad,Ae,Af,Ag,8
0,9,$a,$b,$c,$d,$e,$f,$g,1
#=== wire (lazy) ===
# co-in
13,3,Aa,Ab,Ac,Ad,Ae,Af,Ag,14
14,5,Aa,Ab,Ac,Ad,Ae,Af,Ag,13
15,s11,Aa,Ab,Ac,Ad,Ae,Af,Ag,16
16,s11,Aa,Ab,Ac,Ad,Ae,Af,Ag,15
17,s01,s02,Ab,Ac,Ad,Ae,Af,Ag,17
17,s11,s02,Ab,Ac,Ad,Ae,Af,Ag,18
17,s11,s12,Ab,Ac,Ad,Ae,Af,Ag,17
18,s01,s02,Ab,Ac,Ad,Ae,Af,Ag,17
18,s11,s02,Ab,Ac,Ad,Ae,Af,Ag,18
18,s11,s12,Ab,Ac,Ad,Ae,Af,Ag,17
17,s11,Aa,Ab,Ac,Ad,Ae,Af,Ag,18
18,s01,Aa,Ab,Ac,Ad,Ae,Af,Ag,17
19,s01,s02,Ab,Ac,Ad,Ae,Af,Ag,20
19,s11,s02,Ab,Ac,Ad,Ae,Af,Ag,19
19,s11,s12,Ab,Ac,Ad,Ae,Af,Ag,20
20,s01,s02,Ab,Ac,Ad,Ae,Af,Ag,20
20,s11,s02,Ab,Ac,Ad,Ae,Af,Ag,19
20,s11,s12,Ab,Ac,Ad,Ae,Af,Ag,20
19,s01,Aa,Ab,Ac,Ad,Ae,Af,Ag,20
20,s11,Aa,Ab,Ac,Ad,Ae,Af,Ag,19
21,s01,s02,Ab,Ac,Ad,Ae,Af,Ag,21
21,s11,s02,Ab,Ac,Ad,Ae,Af,Ag,22
21,s11,s12,Ab,Ac,Ad,Ae,Af,Ag,22
22,s01,s02,Ab,Ac,Ad,Ae,Af,Ag,21
22,s11,s02,Ab,Ac,Ad,Ae,Af,Ag,22
22,s11,s12,Ab,Ac,Ad,Ae,Af,Ag,22
2,on,Aa,Ab,Ac,Ad,Ae,Af,Ag,3
3,on,Aa,Ab,Ac,Ad,Ae,Af,Ag,4
5,on,Aa,Ab,Ac,Ad,Ae,Af,Ag,3
4,off,Aa,Ab,Ac,Ad,Ae,Af,Ag,5
5,off,Aa,Ab,Ac,Ad,Ae,Af,Ag,2
3,off,Aa,Ab,Ac,Ad,Ae,Af,Ag,5
# off touching head becomes on
2,3,Aa,Ab,Ac,Ad,Ae,Af,Ag,3
3,5,Ma,Mb,Mc,Md,Me,Mf,Mg,5
3,Aa,Ab,Ac,Ad,Ae,Af,Ag,Ah,4
# on touching tail becomes off
4,5,Aa,Ab,Ac,Ad,Ae,Af,Ag,5
5,3,Na,Nb,Nc,Nd,Ne,Nf,Ng,3
5,Aa,Ab,Ac,Ad,Ae,Af,Ag,Ah,2
@COLORS
0 0 0 0
1 160 255 160
2 128 64 0
3 192 160 128
4 255 255 255
5 96 32 0
6 0 96 0
8 0 96 0
7 128 176 128
9 128 176 128
10 128 128 128
11 160 128 64
12 160 128 64
13 0 0 128
14 0 0 255
15 0 128 192
16 128 192 224
17 128 0 192
18 192 128 224
19 160 0 0
20 255 32 32
21 0 128 0
22 96 224 64
23 0 96 96
24 0 128 128
25 0 224 224
26 0 64 64
27 128 192 192