Mercurial > public > think_complexity
diff Life.py @ 48:98eb01502cf5 tip
Follow up to last commit. Re-orient the r-pentomino. Added progress display.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 31 Jul 2013 20:37:12 -0500 |
parents | 2b0e229e163c |
children |
line wrap: on
line diff
--- a/Life.py Thu Jul 25 21:53:44 2013 -0500 +++ b/Life.py Wed Jul 31 20:37:12 2013 -0500 @@ -25,7 +25,8 @@ n: the number of rows and columns """ - def __init__(self, n, mode='wrap', cval=0.0, random=False): + def __init__(self, n, mode='wrap', cval=0.0, random=False, + show_progress=None): """Attributes: n: number of rows and columns mode: how border conditions are handled @@ -35,6 +36,9 @@ self.n = n self.mode = mode self.cval = cval + self.show_progress = show_progress + self.steps = 0 + if random: self.array = numpy.random.random_integers(0, 1, (n, n)) else: @@ -51,7 +55,8 @@ def loop(self, steps=1): """Executes the given number of time steps.""" - [self.step() for i in xrange(steps)] + for i in xrange(steps): + self.step() def step(self): """Executes one time step.""" @@ -63,6 +68,10 @@ boolean = (con==3) | (con==12) | (con==13) self.array = numpy.int8(boolean) + self.steps += 1 + if self.show_progress and self.steps % self.show_progress == 0: + print self.steps + class LifeViewer(object): """Generates an animated view of the grid."""