TDD-style implementation of Conway's Game of Life in Python
Project description
py-conway
TDD-style implementation of Conway's Game of Life in Python. Built with zero dependencies in order to be portable to Web, CLI and embedded applications.
Installation
pip install py-conway
Usage
To create a game, you'll need to provide dimensions and a starting two-dimensonal list to function as the game board. For example:
from conway.game import Game
beacon = [[0, 1, 0],
[1, 1, 1],
[0, 1, 0]]
new_game = Game(3, 3, beacon)
Once the game board is populated, call the start()
method. The game will start on a background thread and update the full game board as well as a number of informational instance variables:
new_game.start()
new_game.board # hold the complete game state after each step
new_game.live_cells # the count of live cells on the board
new_game.num_steps # the number of steps elapsed in the current game.
It's also possible to call the step()
method and control the game state yourself from one iteration to the next:
new_game.step()
Here's an example that runs the game and plots the game board after intialization and the first step:
import matplotlib.pyplot as plt
from py-conway import Game
def create_zeros(x, y):
dim_one = [0 for item in range(x)]
return [dim_one[:] for item in range(y)]
beacon = create_zeros(12, 12)
beacon[0][1] = 1
beacon[1][2] = 1
beacon[2][3] = 1
game = Game(12, 12, beacon)
plt.imshow(game.beacon, cmap='binary')
plt.show()
game.step()
plt.imshow(game.beacon, cmap='binary')
plt.show()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for py_conway-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39308c78f4e1228605367aa917c7af0080d9fefa0f9f5321c063bd8a6b4fedca |
|
MD5 | 34c686dc61bf8a00b707b2b0adccef5f |
|
BLAKE2b-256 | d94f6090d1c60d63b0d454725242f368641bac6a8d6da848aceb9795f69897c5 |