Added header.
2 Description: Cellular automaton server.
3 Author: Eugen Sawin <sawine@me73.com>
9 import gridmarshal as marshal
13 configs = {rules.Rule1: (((0, 0), 1), ((-1, 0), 1), ((1, 0), 1), ((0, 1), 1),
15 rules.Rule2: (((0, 0), 1), ((-1, 0), 1), ((1, 0), 1), ((0, 1), 1), ((0, -1), 1)),
16 rules.PotentialGrowth: (((0, 0), 4),)}
18 rulemap = {"1": rules.Rule1, "2": rules.Rule2, "3": rules.PotentialGrowth}
20 def main(rule, iterations, dumpfile):
22 for pos, value in configs[type(rule)]:
25 for i in range(iterations):
27 r = grid.width() / 4.0 + grid.height() / 4.0
28 r_ideal = math.sqrt(A / math.pi)
29 A_ideal = r**2 * math.pi
31 pi = (pi + last_pi) / 2.0
33 print "%i %f(%f) %i(%i) %f" % (i, r, r - r_ideal,
35 grid = rule.iterate(grid)
37 marshal.dumpGrid(grid, dumpfile)
39 if __name__ == "__main__":
40 parser = argparse.ArgumentParser(description="cellular automaton.")
41 parser.add_argument("iterations", type=int, help="number of iterations")
42 parser.add_argument("--rule", "-r", default="3")
43 parser.add_argument("--persistent", "-p")
44 args = parser.parse_args()
45 main(rulemap[args.rule](), args.iterations, args.persistent)