Code: Select all
import golly as g
p = 2
def turn():
global p
g.setcell(-p,1,1)
g.setcell(-p-1,1,5)
g.setcell(-p-2,1,5)
g.setcell(-p-3,1,5)
g.setcell(-p-4,1,2)
g.setcell(-p-5,1,1)
g.setcell(-p-6,1,5)
g.setcell(-p-7,1,2)
g.setcell(-p-8,1,1)
g.setcell(-p-9,1,5)
g.setcell(-p-10,1,2)
g.setcell(-p-11,1,1)
p+=12
def rturn():
global p
g.setcell(-p,1,1)
g.setcell(-p-1,1,5)
g.setcell(-p-2,1,5)
g.setcell(-p-3,1,5)
g.setcell(-p-4,1,2)
g.setcell(-p-5,1,1)
p+=6
def flip():
global p
g.setcell(-p,1,5)
g.setcell(-p-1,1,5)
g.setcell(-p-2,1,2)
g.setcell(-p-3,1,1)
g.setcell(-p-4,1,5)
g.setcell(-p-5,1,2)
g.setcell(-p-6,1,1)
g.setcell(-p-7,1,5)
g.setcell(-p-8,1,2)
g.setcell(-p-9,1,1)
p+=10
def retract():
global p
g.setcell(-p,1,5)
g.setcell(-p-1,1,5)
g.setcell(-p-2,1,2)
g.setcell(-p-3,1,1)
g.setcell(-p-4,1,5)
g.setcell(-p-5,1,2)
g.setcell(-p-6,1,1)
g.setcell(-p-7,1,5)
g.setcell(-p-8,1,5)
g.setcell(-p-9,1,2)
g.setcell(-p-10,1,1)
p+=11
def extend():
global p
g.setcell(-p,1,5)
g.setcell(-p-1,1,2)
g.setcell(-p-2,1,1)
p+=3
def unturn():
global p
retract()
retract()
rturn()
g.setcell(-p,1,1)
g.setcell(-p-1,1,1)
p+=2
rturn()
g.setcell(-p,1,5)
g.setcell(-p-1,1,5)
g.setcell(-p-2,1,2)
g.setcell(-p-3,1,1)
g.setcell(-p-4,1,1)
g.setcell(-p-5,1,1)
p+=6
bbox = g.getrect()
g.setcell(0,0,1)
g.setcell(0,1,1)
g.setcell(-1,1,1)
#works!!! could use some reduction though.
for y in range(bbox[3]):
turn()
for x in range(bbox[2]):
if g.getcell(bbox[0]+x,bbox[1]+y)==1:
flip()
else:
extend()
for z in range(bbox[2]):
retract()
unturn()
extend()
also it constructs the pattern rotated 90 degrees. I'll probably improve it later