A 3D grid creation library for simulation and games.
Project description
Gameboard
This library creates a 3-dimensional grid object with 2 fixed-length dimensions (x, y) and a third unfixed-length dimension (z).
Example use cases include multi-agent simulations where multiple agents can be placed on a 2D grid and be in the same cell, or board games where the board is a 2D grid and pieces can be stacked on top of or adjacent to each other.
The primary purpose of this project is to be able to access coordinates just as on a coordinate plane.
e.g. with the variable board
of type grid
, board[0, 0]
will return the bottom-left corner of the grid.
Install
Run:
pip install gameboard
Example Usage
from gameboard.grid import grid
board = grid(grid_size = 3, fill = True)
print(board)
# [[[1], [2], [3]],
#
# [[4], [5], [6]],
#
# [[7], [8], [9]]]
print(board[2, 1])
# [6]
board[2, 1].append('a')
print(board)
# [[[1], [2], [3]],
#
# [[4], [5], [6, 'a']],
#
# [[7], [8], [9]]]
board[2, 2].remove(3)
print(board)
# [[[1], [2], []],
#
# [[4], [5], [6, 'a']],
#
# [[7], [8], [9]]]
print(2 in board[1, 2])
# True
print(2 in board[2, 1])
# False
position = [1, 0]
print(board[position])
# [8]
data = [2, 3, 4]
board[position].append(3)
board[position].append(data)
# [[[1], [2], []],
#
# [[4], [5], [6, 'a']],
#
# [[7], [8, 3, [2, 3, 4]], [9]]]
import numpy as np
pos = np.array([0, 0])
board[pos] = ['0']
print(board)
# [[[1], [2], []],
#
# [[4], [5], [6, 'a']],
#
# [['0'], [8, 3, [2, 3, 4]], [9]]]
The fill
parameter is set to True
for the example, where all squares are numbered.
If you set the fill
parameter to False
or do not specify (default is False
), all z-axis arrays will be empty.
Warning
This project does not currently work with negative indices for the y-coordinate when accessing the grid.
This project is in an early development stage and may not be suitable for all use cases. For ease of use, the __iter__
dunder method has been implemented for both the y-axis and x-axis arrays, and the append
/remove
methods and __iter__
dunder method work for adding, removing and iterating through elements in the z-dimension arrays as the z-dimension arrays are simply Python lists.
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
File details
Details for the file gameboard-1.0.9.1.tar.gz
.
File metadata
- Download URL: gameboard-1.0.9.1.tar.gz
- Upload date:
- Size: 3.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f43e368d6c56823417f29dbbce0bfe80fe00b2e43eb6df4c7a001d02268aa74 |
|
MD5 | dd58ba1fb0ab87c70e452d62b95e34f6 |
|
BLAKE2b-256 | de2ffe34dffc9f747de07c1015eeac5d3253c434d97a3dd004737964dd903eb3 |
File details
Details for the file gameboard-1.0.9.1-py3-none-any.whl
.
File metadata
- Download URL: gameboard-1.0.9.1-py3-none-any.whl
- Upload date:
- Size: 3.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 044b3c6e8d5c286fa536ee5b59c3a8bc0f0a16cf59ea7a6910cd8ebca3fd97d9 |
|
MD5 | 31d4eb7bd69856c2825d2cbc6b44adc7 |
|
BLAKE2b-256 | 2953165dc9d32dfb3aa4134079170e0ebf747ace6048b5cff96393b2f8c8a801 |