Not a Golly script, will convert it upon request.
Code: Select all
import random
from sys import argv
def box(x0=-32,y0=-32,dx=64,dy=64,fill=50,liveout=False):
def generate(x,y):
random.seed(x+y**3-x**2+x*y) # for some reason seed=y**3-3*(y+n) behaves strangely
return random.random()
def rleappend(c):
nonlocal out,rep,char
if c==char:
rep+=1
return
elif rep!=0:
if rep==1:
rep=""
if liveout:
print(end=str(rep)+char)
else:
out+=str(rep)+char
rep=1
char=c
out="x="+str(dx)+",y="+str(dy)+",rule=Confusion0\n"
if liveout:
print(out)
rep=0
char=""
for y in range(x0,x0+dx):
for x in range(y0,y0+dy):
if generate(x,y)>(fill/100):
rleappend("A")
else:
rleappend("B")
rleappend("$")
rleappend("!")
rleappend("")
return out
def parse(x):
if "." in x:
return float(x)
else:
return int(x)
if len(argv)<=1:
print("Interactive mode, input space separated values.\nArguments are topleft x, topleft y, box size x, box size y, and fill %.\nYou can use = to assign arguments, ie fill=25 gives 25% fill.")
while 1:
x=input(">").replace("%","").split(" ")
y=[]
z={}
for i in x:
if i=="":
continue
if "=" in i:
t=i.split("=")
z[t[0]]=parse(t[1])
else:
y.append(parse(i))
print(box(*y,**z))
else:
box(*map(parse,argv[1:]),liveout=True)
Code: Select all
@RULE Confusion0
0 unknown
1 dead
2 alive
@TABLE
n_states:3
neighborhood:Moore
symmetries:permute
var a1={0,1,2}
var a2=a1
var a3=a1
var a4=a1
var a5=a1
var a6=a1
var a7=a1
var a8=a1
var a9=a1
1,a1,a2,1,1,1,1,1,1,1
1,2,2,2,1,1,1,1,1,2
1,2,2,2,2,a1,a2,a3,a4,1
2,a1,1,1,1,1,1,1,1,1
2,2,2,a1,1,1,1,1,1,2
2,2,2,2,2,a1,a2,a3,a4,1
a1,0,a2,a3,a4,a5,a6,a7,a8,0
@COLORS
0 0 0 0
1 48 48 48
2 255 255 255
Edit: Pre-pulsar at -202 55 tick 185. By the time it grows into a pulsar though it's already fatally damaged. Another one is at 46 -142 tick 200, but this one is already dead. Another one is at -225 340 tick 105. It's also doomed. A queen bee at -311 132 tick 79.