gameboard


Namegameboard JSON
Version 1.0.9.1 PyPI version JSON
download
home_pagehttps://github.com/Sprocketer/gameboard
SummaryA 3D grid creation library for simulation and games.
upload_time2024-11-04 19:31:35
maintainerNone
docs_urlNone
authorAlex
requires_pythonNone
licenseNone
keywords pypi python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# 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:

```bash
pip install gameboard
```

## Example Usage

```python
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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Sprocketer/gameboard",
    "name": "gameboard",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "pypi, python",
    "author": "Alex",
    "author_email": "sprocketerdev@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/de/2f/fe34dffc9f747de07c1015eeac5d3253c434d97a3dd004737964dd903eb3/gameboard-1.0.9.1.tar.gz",
    "platform": null,
    "description": "\n# Gameboard\n\nThis library creates a 3-dimensional grid object with 2 fixed-length dimensions (x, y) and a third unfixed-length dimension (z).\n\nExample 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.\n\nThe primary purpose of this project is to be able to access coordinates just as on a coordinate plane.\n\ne.g. with the variable `board` of type `grid`, `board[0, 0]` will return the bottom-left corner of the grid.\n\n## Install\n\nRun:\n\n```bash\npip install gameboard\n```\n\n## Example Usage\n\n```python\nfrom gameboard.grid import grid\n\nboard = grid(grid_size = 3, fill = True)\nprint(board)\n\n# [[[1], [2], [3]],\n#\n# [[4], [5], [6]],\n#\n# [[7], [8], [9]]]\n\nprint(board[2, 1])\n\n# [6]\n\nboard[2, 1].append('a')\nprint(board)\n\n# [[[1], [2], [3]],\n#\n# [[4], [5], [6, 'a']],\n#\n# [[7], [8], [9]]]\n\nboard[2, 2].remove(3)\nprint(board)\n\n# [[[1], [2], []],\n#\n# [[4], [5], [6, 'a']],\n#\n# [[7], [8], [9]]]\n\nprint(2 in board[1, 2])\n\n# True\n\nprint(2 in board[2, 1])\n\n# False\n\nposition = [1, 0]\nprint(board[position])\n\n# [8]\n\ndata = [2, 3, 4]\nboard[position].append(3)\nboard[position].append(data)\n\n# [[[1], [2], []],\n#\n# [[4], [5], [6, 'a']],\n#\n# [[7], [8, 3, [2, 3, 4]], [9]]]\n\nimport numpy as np\npos = np.array([0, 0])\nboard[pos] = ['0']\nprint(board)\n\n# [[[1], [2], []],\n#\n# [[4], [5], [6, 'a']],\n#\n# [['0'], [8, 3, [2, 3, 4]], [9]]]\n```\n\nThe `fill` parameter is set to `True` for the example, where all squares are numbered.\nIf you set the `fill` parameter to `False` ***or*** do not specify (default is `False`), all z-axis arrays will be empty.\n\n## Warning\n\nThis project does not currently work with negative indices for the y-coordinate when accessing the grid.\n\nThis 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.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A 3D grid creation library for simulation and games.",
    "version": "1.0.9.1",
    "project_urls": {
        "Homepage": "https://github.com/Sprocketer/gameboard"
    },
    "split_keywords": [
        "pypi",
        " python"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2953165dc9d32dfb3aa4134079170e0ebf747ace6048b5cff96393b2f8c8a801",
                "md5": "31d4eb7bd69856c2825d2cbc6b44adc7",
                "sha256": "044b3c6e8d5c286fa536ee5b59c3a8bc0f0a16cf59ea7a6910cd8ebca3fd97d9"
            },
            "downloads": -1,
            "filename": "gameboard-1.0.9.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "31d4eb7bd69856c2825d2cbc6b44adc7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 3097,
            "upload_time": "2024-11-04T19:31:34",
            "upload_time_iso_8601": "2024-11-04T19:31:34.453071Z",
            "url": "https://files.pythonhosted.org/packages/29/53/165dc9d32dfb3aa4134079170e0ebf747ace6048b5cff96393b2f8c8a801/gameboard-1.0.9.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "de2ffe34dffc9f747de07c1015eeac5d3253c434d97a3dd004737964dd903eb3",
                "md5": "dd58ba1fb0ab87c70e452d62b95e34f6",
                "sha256": "3f43e368d6c56823417f29dbbce0bfe80fe00b2e43eb6df4c7a001d02268aa74"
            },
            "downloads": -1,
            "filename": "gameboard-1.0.9.1.tar.gz",
            "has_sig": false,
            "md5_digest": "dd58ba1fb0ab87c70e452d62b95e34f6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 3085,
            "upload_time": "2024-11-04T19:31:35",
            "upload_time_iso_8601": "2024-11-04T19:31:35.395114Z",
            "url": "https://files.pythonhosted.org/packages/de/2f/fe34dffc9f747de07c1015eeac5d3253c434d97a3dd004737964dd903eb3/gameboard-1.0.9.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-04 19:31:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Sprocketer",
    "github_project": "gameboard",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "gameboard"
}
        
Elapsed time: 0.39447s