view ch7ex2.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 source
"""Chapter 7, exercise 2 in Allen Downey's Think Complexity book.

Start with an r-pentomino as an initial condition and confirm that the results
are consistent with the description above. You might have to adjust the size of
the grid and the boundary behavior.

"""
import Life


class RPentomino(Life.Life):

    def __init__(self, n):
        super(RPentomino, self).__init__(n, mode='constant', cval=0,
                random=False, show_progress=10)

        i, j = n / 2, n / 2
        self.array[i, j] = 1
        self.array[i, j - 1] = 1
        self.array[i + 1, j] = 1
        self.array[i + 1, j + 1] = 1
        self.array[i - 1, j] = 1


if __name__ == '__main__':
    life = RPentomino(150)
    viewer = Life.LifeViewer(life, delay=1)
    viewer.animate(steps=1200)