建议看一下WireWorld的扩展版WireWorld++,使用两个WireWorld复合,简化了多数操作(比如交叉)。
原论文地址:
http://wpmedia.wolfram.com/uploads/sites/13/2018/07/27-1-2.pdf【状态】
0 虚空
1 强电子头
2 强电子尾
3 强导体
4 弱电子头
5 弱电子尾
6 弱导体
【推演规则】
虚空永恒!
强电子头下一步减弱成强电子尾
强电子尾下一步减弱成强导体
弱电子头下一步减弱成弱电子尾
弱电子尾下一步减弱成弱导体
如果当前强导体8个邻居中有1或2个强电子头,或恰好2个弱电子头,则下一步被激发成强电子头
如果当前弱导体8个邻居中有1或2个弱电子头,或恰好1个强电子头,则下一步被激发成弱电子头
【适用于Golly的.rule文件】
@rule WireWorld++
A 4-state CA created by Brian Silverman. WireWorld models the flow of
currents in wires and makes it relatively easy to build logic gates
and other digital circuits.
@TABLE
# rules: 83
#
# Golly rule-table format.
# Each rule: C,N,NE,E,SE,S,SW,W,NW,C'
# N.B. Where the same variable appears multiple times in a transition,
# it takes the same value each time.
#
# Default for transitions not listed: no change
#
n_states:7
neighborhood:Moore
symmetries:rotate8
var a={0,1,2,3,4,5,6}
var b={0,1,2,3,4,5,6}
var c={0,1,2,3,4,5,6}
var d={0,1,2,3,4,5,6}
var e={0,1,2,3,4,5,6}
var f={0,1,2,3,4,5,6}
var g={0,1,2,3,4,5,6}
var h={0,1,2,3,4,5,6}
var i={0,2,3,4,5,6}
var j={0,2,3,4,5,6}
var k={0,2,3,4,5,6}
var l={0,2,3,4,5,6}
var m={0,2,3,4,5,6}
var n={0,2,3,4,5,6}
var o={0,2,3,5,6}
var p={0,2,3,5,6}
var q={0,2,3,5,6}
var r={0,2,3,5,6}
var s={0,2,3,5,6}
var t={0,2,3,5,6}
var u={0,1,2,3,5,6}
var v={0,1,2,3,5,6}
var w={0,1,2,3,5,6}
var x={0,1,2,3,5,6}
var y={0,1,2,3,5,6}
var z={0,1,2,3,5,6}
var A={1,2,3,5,6}
var B={1,2,3,5,6}
var C={1,2,3,5,6}
var D={1,4}
var E={0,4}
var F={0,1}
var G={0,2,3,4,5,6}
var H={0,2,3}
var I={4,5,6}
var J={4,5,6}
var K={4,5,6}
1,a,b,c,d,e,f,g,h,2
2,a,b,c,d,e,f,g,h,3
3,i,j,k,l,m,n,a,1,1
3,o,p,q,r,s,t,4,4,1
3,i,j,k,l,m,1,n,1,1
3,o,p,q,r,s,4,t,4,1
3,i,j,k,l,1,m,n,1,1
3,o,p,q,r,4,s,t,4,1
3,i,j,k,1,l,m,n,1,1
3,u,v,w,x,y,z,4,4,1
3,u,v,w,x,y,4,z,4,1
3,0,0,0,1,1,4,4,1,1
3,u,v,w,x,4,y,z,4,1
3,0,0,0,1,4,1,4,1,1
3,0,0,0,1,4,4,1,1,1
3,o,p,q,4,r,s,t,4,1
3,u,v,w,4,x,y,z,4,1
3,0,0,0,4,1,1,4,1,1
3,0,0,0,4,1,4,1,1,1
3,0,0,0,4,4,1,1,1,1
3,0,0,1,0,1,1,4,4,1
3,0,0,1,0,1,4,1,4,1
3,0,0,1,0,1,4,4,1,1
3,0,0,1,0,4,1,1,4,1
3,0,0,1,0,4,1,4,1,1
3,0,0,1,0,4,4,1,1,1
3,0,0,1,1,0,1,4,4,1
3,0,0,1,1,0,4,1,4,1
3,0,0,1,1,0,4,4,1,1
3,0,0,1,1,1,0,4,4,1
3,0,0,1,1,1,4,0,4,1
3,0,0,1,1,4,0,1,4,1
3,0,0,1,1,4,0,4,1,1
3,0,0,1,1,4,1,0,4,1
3,0,0,1,1,4,4,0,1,1
3,0,0,1,4,0,1,1,4,1
3,0,0,1,4,0,1,4,1,1
3,0,0,1,4,0,4,1,1,1
3,0,0,1,4,1,0,1,4,1
3,0,0,1,4,1,0,4,1,1
3,0,0,1,4,1,1,0,4,1
3,0,0,1,4,1,4,0,1,1
3,0,0,4,u,A,B,C,4,1
3,0,0,4,0,1,1,4,1,1
3,0,0,4,0,1,4,1,1,1
3,0,0,4,0,4,1,1,1,1
3,0,0,4,1,0,1,1,4,1
3,0,0,4,1,0,1,4,1,1
3,0,0,4,1,0,4,1,1,1
3,0,0,4,1,1,0,1,4,1
3,0,0,4,1,1,0,4,1,1
3,0,0,4,1,1,1,0,4,1
3,0,0,4,1,1,4,0,1,1
3,0,1,0,4,0,1,1,4,1
3,0,1,0,4,1,0,1,4,1
3,0,1,0,4,1,1,0,4,1
4,a,b,c,d,e,f,g,h,5
5,a,b,c,d,e,f,g,h,6
6,i,o,p,q,r,s,t,D,4
6,u,v,w,x,y,z,4,a,4
6,u,v,w,x,y,D,z,4,4
6,E,u,v,w,x,4,y,z,4
6,0,0,0,F,D,u,v,4,4
6,i,j,k,l,1,m,n,G,4
6,H,0,0,G,I,1,J,K,4
6,H,0,0,G,I,J,1,K,4
6,H,0,0,G,I,J,K,1,4
6,0,0,0,1,H,4,4,4,4
6,0,0,0,1,4,H,4,4,4
6,0,0,0,1,4,4,H,4,4
6,u,v,w,4,x,y,z,4,4
6,0,0,0,4,H,1,4,4,4
6,0,0,0,4,H,4,1,4,4
6,0,0,0,4,H,4,4,1,4
6,0,0,0,4,1,H,4,4,4
6,0,0,0,4,1,4,H,4,4
6,0,0,0,4,4,H,1,4,4
6,0,0,0,4,4,H,4,1,4
6,0,0,0,4,4,1,H,4,4
6,0,0,0,4,4,4,H,1,4
6,0,0,1,0,H,4,4,4,4
6,0,0,1,0,4,H,4,4,4
6,0,0,1,0,4,4,H,4,4
@NAMES
# these state names are not yet used by Golly
0 empty
1 strong head
2 strong tail
3 strong conductor
4 weak head
5 weak tail
6 weak conductor
@COLORS
0 48 48 48
1 255 255 255
2 255 192 192
3 255 128 96
4 160 160 160
5 160 120 120
6 160 80 60
@ICONS
# icon info is in XPM format (order is not important)
XPM
/* width height num_colors chars_per_pixel */
"31 31 5 1"
/* colors */
". c #000000"
"D c #404040"
"C c #808080"
"B c #C0C0C0"
"W c #FFFFFF"
/* pixels */
"..............................."
"..............................."
"..........DCBWWWWWBCD.........."
".........CWWWWWWWWWWWC........."
".......DWWWWWWWWWWWWWWWD......."
"......BWWWWWWWWWWWWWWWWWB......"
".....BWWWWWWWWWWWWWWWWWWWB....."
"....DWWWWWWWWWWWWWWWWWWWWWD...."
"....WWWWWWWWWWWWWWWWWWWW
http://WWW...."
"...CWWWWWWWWWWWWWWWWWWWWWWWC..."
"..DWWWWWWWWWWWWWWWWWWWWWWWWWD.."
"..CWWWWWWWWWWWWWWWWWWWWWWWWWC.."
"..BWWWWWWWWWWWWWWWWWWWWWWWWWB.."
"..WWWWWWWWWWWWWWWWWWWWWWWW
http://WWW.."
"..WWWWWWWWWWWWWWWWWWWWWWWW
http://WWW.."
"..WWWWWWWWWWWWWWWWWWWWWWWW
http://WWW.."
"..WWWWWWWWWWWWWWWWWWWWWWWW
http://WWW.."
"..WWWWWWWWWWWWWWWWWWWWWWWW
http://WWW.."
"..BWWWWWWWWWWWWWWWWWWWWWWWWWB.."
"..CWWWWWWWWWWWWWWWWWWWWWWWWWC.."
"..DWWWWWWWWWWWWWWWWWWWWWWWWWD.."
"...CWWWWWWWWWWWWWWWWWWWWWWWC..."
"....WWWWWWWWWWWWWWWWWWWW
http://WWW...."
"....DWWWWWWWWWWWWWWWWWWWWWD...."
".....BWWWWWWWWWWWWWWWWWWWB....."
"......BWWWWWWWWWWWWWWWWWB......"
".......DWWWWWWWWWWWWWWWD......."
".........CWWWWWWWWWWWC........."
"..........DCBWWWWWBCD.........."
"..............................."
"..............................."
XPM
/* width height num_colors chars_per_pixel */
"15 15 4 1"
/* colors */
". c #000000"
"D c #404040"
"B c #C0C0C0"
"W c #FFFFFF"
/* pixels */
"..............."
"....DBWWWBD...."
"...BWWWWWWWB..."
"..BWWWWWWWWWB.."
".DWWWWWWWWWWWD."
".BWWWWWWWWWWWB."
".WWWWWWWWWWWWW."
".WWWWWWWWWWWWW."
".WWWWWWWWWWWWW."
".BWWWWWWWWWWWB."
".DWWWWWWWWWWWD."
"..BWWWWWWWWWB.."
"...BWWWWWWWB..."
"....DBWWWBD...."
"..............."
XPM
/* width height num_colors chars_per_pixel */
"7 7 4 1"
/* colors */
". c #000000"
"D c #404040"
"E c #E0E0E0"
"W c #FFFFFF"
/* pixels */
".DEWED."
"DWWWWWD"
"EWWWWWE"
"WWWWWWW"
"EWWWWWE"
"DWWWWWD"
".DEWED."