Python interface for game of life
Project description
Python interface for Game of Life
Python wrapper for C implementation of Conway's Game of Life algorithm.
This only provides low-level utilities.
Design notes
None of the methods allocate any Python objects; output objects must be created by caller. This both simplifies memory management and makes it possible to avoid unneeded garbage collection for large objects.
API
run(width, height, n_threads, n_iters, pos_start, pos_end, calllback)
width
: Width of the board; integer
height
: Height of the board; integer
n_threads
: Number of worker threads (not yet supported); integer
n_iters
: Number of iterations to run; integer
pos_start
: Initial position; boolean list of size width
x height
pos_end
: (Output) Final position; boolean list of size width
x height
. Must be pre-allocated.
callback
: Iteration calllback, or None
(see below)
return value: number of actually executed iterations
(never more than n_iters
, but could be less, see below)
callback(n_iter, count, bhash, pos_ptr, fin)
n_iter
: current iteration (see below); integer
count
: count of cells; integer
bhash
: hash of current position; integer
pos_ptr
: internal memory pointer to the current position; integer.
Method read_ptr
can be used to extract the position
fin
: 1 if this is final iteration, 0 if not
return value: None
or integer; value 1 will trigger iterations to stop immediately.
Notes
-
callback
(if defined) is called before first iteration, and then again after every iterations, including the last (where fin=1). Therefore, normally callback method is called1 + n_iters
times. -
However this method also detects loops and if your sequence deteriorates to a loop, it will cut it short;
fin
would still be set to 1 on the last iteration only regardless. Hash values used in loop detection is passed to the callback.
read_ptr(width, height, pos_ptr, position)
width
: Width of the board; integer
height
: Height of the board; integer
pos_ptr
: Internal memory pointer returned in a callback (see method run
); integer
position
: (Output) Intermediary position; boolean list of size width
x height
.
Must be pre-allocated.
return value: 1 on success
Project details
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 conway_life-0.1.1-cp37-cp37m-macosx_11_0_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70ac121b2524de410c650e33cb92faeb793cd81410a3aa9fb8916ce181af8895 |
|
MD5 | fe0bf71a02f9d09059dde61c5037a35d |
|
BLAKE2b-256 | c8f42dab278617fc421a8a171b0f6900faf6191114a9492e35314031b81bf206 |