Corpus:
Code: Select all
x = 41, y = 29, rule = JvN29
23.2IL$20.IpAIpAIpAIpA$20.J2IJ.L.LT3S$20.J4.2IpAI2.pAT$18IpAIpALILILI
pA3IpA8IL$J16.QJ2.LJLJLJ13.L$J5.pAIpA3I4.LR3.IJIJIJ13.L$J.2IL.J.JRL6K
R22.L$pAIpAIpAIpAIJR7.pA3.pAL5.IL10.L$J3.2IJ2.R8S3.JL3IpAIJpA4IL5.L$J
20.JIJ3.R.R2ILJL5.L$J16.TpAK.J.I.pAIpAIpAJ.IJL5.L$J3.2IL10.2TJ.J.J2.R
S2.IpA2.L5.L$pAIpAIpAIpAIpA5.5IpAIpAIpA6.JL8IL$J.2IJ.L.L5.J2R2.L.L.L
2.TS2.JL7IJL$J5.2IpA4I.JRpA3K.L3.pAIpAIpAJIpAIpAIpAIpAJL$J20.L5.T.T9.
JL$J4.2IL13.I.L2.pAILpA4IpA4IJL$J.IpAIpAIpAIpA13.LILJ.IJ4.IpA4.L$J.J
2IJ.L.LT3S9.LJLJ13.L$J.J4.2IpAI2.pAT8.pAJLJ3K10.L$J.JILILILT4.T10.4IpA
10.L$J.2JLJLJLT4.T7.2IL15.L$pAIpAJLJLJIpA3IpA8IpAIpA2IL12.L$J3.LJIpA
14.L.L.LK2.JL8.L$J3.IJ15.pAK.pAIpAIpALJL8.L$J20.IL.2IJ.T2I$J21.pAILIL
IpA2Q$J23.IJIJ!
Code: Select all
#incredibly unoptimized tape compiler
#clobbers clipboard!
import golly as g
cells=g.getcells(g.getrect())
ncells=[]
#parse cell list
for i in xrange(0,len(cells),3):
#idk why this is necessary
if i+2>=len(cells):
break
x=cells[i]
y=cells[i+1]
s=cells[i+2]
while y>=len(ncells):
ncells.append([])
while x>=len(ncells[y]):
ncells[y].append(0)
ncells[y][x]=s
code=[1,1,1,1,1,1,0,1,0,1,0]
def codon(state):
if state==9:
return [1,0,0,0,0]
elif state==10:
return [1,0,0,0,1,0]
elif state==11:
return [1,0,0,1,0]
elif state==12:
return [1,0,1,0]
elif state==17:
return [1,0,1,1,0]
elif state==18:
return [1,1,0,0]
elif state==19:
return [1,1,0,1,0]
elif state==20:
return [1,1,1,0]
elif state==25:
return [1,1,1,1,0]
def special():
return [1,1,1,1,1,0]
def wait(ticks=1):
return [0]*ticks
def pulse(ticks=0):
return [1]+wait(ticks)
#move carm to outside
for i in xrange(0,10):
code+=special()+codon(17)
code+=codon(17)
#move carm up
up=len(ncells)+4
for i in xrange(2,up):
code+=codon(18)
code+=codon(19)
for i in xrange(3,up):
code+=codon(20)
for i in xrange(0,up-3):
code+=codon(10)+wait((up-i)*2)+special()
code+=codon(9)+wait(5)+special()+codon(12)+wait()+pulse()+wait()+special()
#code+=codon(9)+wait(1)+special()+codon(17)+codon(20)+codon(11)+special()+codon(9)+special()+pulse()+codon(17)+codon(12)+special()+codon(9)+special()+pulse()
#print each line
for i in ncells:
#move to end
for j in xrange(0,len(i)):
code+=codon(17)+special()
#set up tip
code+=codon(18)+codon(17)
for j in reversed(i):
if j:
code+=codon(j)
code+=wait(2)+special()+codon(12)+wait(3)+special()+codon(11)+special()+codon(18)+pulse()+codon(17)+pulse()+codon(20)+pulse(3)+special()+codon(9)+wait(3)+special()+pulse()+codon(17)
code+=wait(2)+special()+codon(12)+wait(3)+special()+codon(19)+pulse()+codon(18)+pulse()+codon(17)+pulse(5)+special()+codon(10)+wait(4)+special()+pulse()+codon(9)+wait(5)+special()+codon(12)+wait()+pulse(1)+special()
#set up final head (implicit pulse at end)
code+=codon(18)+codon(12)+wait(3)+special()+special()
out="x=0,y=0,rule=JvN29\npA"
#padding
while(len(code)%5!=1):
code.append(0)
#KO!
#pA!
for i in code:
if i:
char="O"
else:
char="K"
out+=char
out+="$"+str(len(code)-7)+"I6MIJ!"
g.setclipstr(out)
g.paste(0,29,"or")
- Paste the corpus with the top left corner at (0,0)
Run the script (clobbers clipboard)
Run the pattern for 1470212 generations to do 1 cycle