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.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7797aa14cdfa0cc4db46d03cd5b9c1a67fdf3c67638b2a7343273abd3e32d80d |
|
MD5 | f58dec216f1f21c2620231a1fa5981d5 |
|
BLAKE2b-256 | fa4e3a5b66bd0445918776ac27660458062fa0752b9ddd33e04f5768e191f9e9 |