Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gameboard-1.0.9.1.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

gameboard-1.0.9.1-py3-none-any.whl (3.1 kB view details)

Uploaded Python 3

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

Hashes for gameboard-1.0.9.1.tar.gz
Algorithm Hash digest
SHA256 3f43e368d6c56823417f29dbbce0bfe80fe00b2e43eb6df4c7a001d02268aa74
MD5 dd58ba1fb0ab87c70e452d62b95e34f6
BLAKE2b-256 de2ffe34dffc9f747de07c1015eeac5d3253c434d97a3dd004737964dd903eb3

See more details on using hashes here.

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

Hashes for gameboard-1.0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 044b3c6e8d5c286fa536ee5b59c3a8bc0f0a16cf59ea7a6910cd8ebca3fd97d9
MD5 31d4eb7bd69856c2825d2cbc6b44adc7
BLAKE2b-256 2953165dc9d32dfb3aa4134079170e0ebf747ace6048b5cff96393b2f8c8a801

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page