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.
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:
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.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebd67a734013e5645977a092a962565ea4f653b4fe2b8103b647077b0ed49e64 |
|
MD5 | ffb590e511a232679dc03ec801abeb43 |
|
BLAKE2b-256 | 2dce4c70bd390f062dd11e4d1f5ebdec2e0209e23391aae271b4b8136e1896f5 |