I am running OS X 10.6.8 on an IMac and have these two Python scripts in directory "golly-2.5-mac/My Scripts":
make_rule.py
Code: Select all
from random import randint
import golly as g
def f(n):
line = [0, 0, 0, 0, 0, 0, 0, 0, n]
i = 0
while i < 8:
j = 0
while j <= i:
line[j] = 1
j += 1
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (line[8], line[7], line[6], line[5], line[4], line[3], line[2], line[1], line[0], r()))
j = 0
while j <= i:
line[j] = 2
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (line[8], line[7], line[6], line[5], line[4], line[3], line[2], line[1], line[0], r()))
j += 1
i += 1
def r():
return randint(0, 2)
file = open(g.getdir('rules') + 'test.table', 'w')
file.write('n_states:3\n')
file.write('neighborhood:Moore\n')
file.write('symmetries:permute\n')
file.write('\n')
f(0)
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (1, 0, 0, 0, 0, 0, 0, 0, 0, r()))
f(1)
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (2, 0, 0, 0, 0, 0, 0, 0, 0, r()))
f(2)
file.close
run_test.py
Code: Select all
import golly as g
g.new("testing rule")
g.setalgo('RuleLoader')
g.setrule('test')
g.select([0, 0, 100, 100])
g.randfill(33)
g.select([])
g.fit()
If I start Golly and run make_rule.py the rule test.table is written correctly. If I then run run_test.py I get this error:
"Error reading /Users/brian/CA Programs/golly-2.5-mac/My Rules/Forum Rules/test.table: one or more of n_states, neighborhood or symmetries missing"
If I then close Golly, restart it and run run_test.py it works as expected. What am I doing wrong?
I would like to combine these two scripts into this one:
test_rule.py
Code: Select all
from random import randint
import golly as g
def f(n):
line = [0, 0, 0, 0, 0, 0, 0, 0, n]
i = 0
while i < 8:
j = 0
while j <= i:
line[j] = 1
j += 1
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (line[8], line[7], line[6], line[5], line[4], line[3], line[2], line[1], line[0], r()))
j = 0
while j <= i:
line[j] = 2
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (line[8], line[7], line[6], line[5], line[4], line[3], line[2], line[1], line[0], r()))
j += 1
i += 1
def r():
return randint(0, 2)
file = open(g.getdir('rules') + 'test.table', 'w')
file.write('n_states:3\n')
file.write('neighborhood:Moore\n')
file.write('symmetries:permute\n')
file.write('\n')
f(0)
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (1, 0, 0, 0, 0, 0, 0, 0, 0, r()))
f(1)
file.write('%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n' % (2, 0, 0, 0, 0, 0, 0, 0, 0, r()))
f(2)
file.close
g.new("testing rule")
g.setalgo('RuleLoader')
g.setrule('test')
g.select([0, 0, 100, 100])
g.randfill(33)
g.select([])
g.fit()
Brian Prentice