The rule "Marbles", which was possibly discovered by "islptng", was proven Turing Complete recently.
Code: Select all
@RULE Marbles
Inspired by a toy, this rule can do anything you can do in that toy set, or even something better.
The toy is a marble track, but with logic gates. Different from Turing Tumble,
this toy is not designed to be Turing Complete, but this ruleset does.
In the original toy, the board is only 20*20, but with Golly, the board is unbounded.
The rule has a ball lift and a ball splitter, while the toy can't!
The manual of the toy is available online at (link removed).
@TABLE
n_states:18
neighborhood:Moore
symmetries:none
var a = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17}
var b = a
var c = a
var d = a
var e = a
var f = a
var g = a
var h = a
var lb = {2,11,17}
var rb = {3,12,17}
var xb = {lb,rb}
var w1 = {1,4,5,6,7,9,10,13,14,15,16,xb}
var w2 = w1
var nw = {0,2,3,8,17}
var sb = {11,12}
var sw = {9,14,5,7}
# Sometimes we need to block the path
sb,sw,a,b,c,d,e,f,g,9
sb,a,b,sw,c,d,e,f,g,9
sb,a,b,c,d,sw,e,f,g,9
sb,a,b,c,d,e,f,sw,g,9
# Normal ball movement
# Abnormal state(16)
# we have a ball duplicator...
0,xb,a,b,c,16,d,e,f,17
# and antigravity!
0,lb,a,b,c,d,e,16,16,0
0,a,b,c,d,lb,16,16,e,2
0,rb,16,16,a,b,c,d,e,0
0,a,b,16,16,rb,c,d,e,3
0,a,b,c,lb,16,d,e,f,2
0,a,b,c,d,16,rb,e,f,3
0,a,b,c,d,e,0,lb,16,3
0,a,16,rb,0,b,c,d,e,2
# Sometimes strange things happen
0,a,b,lb,c,w1,d,rb,e,17
0,a,lb,w1,b,c,d,w2,rb,17
0,17,a,b,c,d,e,f,g,17
0,xb,a,1,b,1,c,1,d,0
# On slopes
0,xb,a,w1,b,w2,c,d,e,2
8,xb,a,w1,b,w2,c,d,e,11
0,xb,a,b,c,w1,d,w2,e,3
8,xb,a,b,c,w1,d,w2,e,12
# Left
# Frozen
2,a,b,c,d,w1,e,w2,f,2
# Falling
0,lb,a,b,c,d,e,f,g,2
8,lb,a,b,c,d,e,f,g,11
# Moving left
0,a,b,lb,w1,w2,c,d,e,2
8,a,b,lb,w1,w2,c,d,e,11
# Falling from the edge
0,nw,lb,w1,a,b,c,d,e,2
8,nw,lb,w1,a,b,c,d,e,11
# Right
# Frozen
3,a,b,w1,c,w2,d,e,f,3
# Falling
0,rb,a,b,c,d,e,f,g,3
8,rb,a,b,c,d,e,f,g,12
# Moving right
0,a,b,c,d,w1,w2,rb,e,3
8,a,b,c,d,w1,w2,rb,e,12
# Falling from the edge
0,nw,a,b,c,d,e,w1,rb,3
8,nw,a,b,c,d,e,w1,rb,12
# Default
2,a,b,c,d,e,f,g,h,0
3,a,b,c,d,e,f,g,h,0
17,a,b,c,d,e,f,g,h,0
11,a,b,c,d,e,f,g,h,8
12,a,b,c,d,e,f,g,h,8
# Wire
var tw = {10,15,4,6}
var rw = {8,11,12,13}
var rv = {8,11,12}
rv,sw,a,b,c,d,e,f,g,9
13,sw,a,b,c,d,e,f,g,14
rv,a,b,sw,c,d,e,f,g,9
13,a,b,sw,c,d,e,f,g,14
rv,a,b,c,d,sw,e,f,g,9
13,a,b,c,d,sw,e,f,g,14
rv,a,b,c,d,e,f,sw,g,9
13,a,b,c,d,e,f,sw,g,14
9,tw,a,b,c,d,e,f,g,10
14,tw,a,b,c,d,e,f,g,15
9,a,b,tw,c,d,e,f,g,10
14,a,b,tw,c,d,e,f,g,15
9,a,b,c,d,tw,e,f,g,10
14,a,b,c,d,tw,e,f,g,15
9,a,b,c,d,e,f,tw,g,10
14,a,b,c,d,e,f,tw,g,15
10,a,b,c,d,e,f,g,h,8
15,a,b,c,d,e,f,g,h,13
var sr = {4,5}
6,a,4,b,c,d,e,f,g,7
6,a,b,c,4,d,e,f,g,7
6,a,b,c,d,e,4,f,g,7
6,a,b,c,d,e,f,g,4,7
7,a,5,b,c,d,e,f,g,6
7,a,b,c,5,d,e,f,g,6
7,a,b,c,d,e,5,f,g,6
7,a,b,c,d,e,f,g,5,6
sr,xb,a,b,c,d,e,f,g,5
sr,a,b,xb,c,d,e,f,g,5
sr,a,b,c,d,xb,e,f,g,5
sr,a,b,c,d,e,f,xb,g,5
5,a,b,c,d,e,f,g,h,4
6,xb,a,b,c,d,e,f,g,7
6,a,b,xb,c,d,e,f,g,7
6,a,b,c,d,xb,e,f,g,7
6,a,b,c,d,e,f,xb,g,7
7,xb,a,b,c,d,e,f,g,6
7,a,b,xb,c,d,e,f,g,6
7,a,b,c,d,xb,e,f,g,6
7,a,b,c,d,e,f,xb,g,6
@COLORS
0 0 0 0 Empty
1 255 128 0 Wall
2 255 192 192 Ball left
3 192 192 255 right
4 128 0 0 Trigger sensor inactive
5 255 0 0 active
6 0 0 128 Toggler sensor inactive
7 0 0 255 active
8 255 0 255 Wire
9 255 255 0 Signal
10 255 192 64 Tail
11 255 0 0 Wire with ball left
12 0 0 255 right
13 192 255 192 Wire with wall
14 255 255 255 Signal with wall
15 128 128 128 Tail with wall
16 0 192 0 Unusual
17 255 192 255 Double ball