A quick way to write and visualise any code involving grids of squares in python.
Project description
Pygrille
Pygrille is a Python library that uses Pygame to make it easier to do many things involving a square grid.
Installation
Use the package manager pip to install Pygrille.
pip install pygrille
Usage
import pygrille
PIXEL_SIZE = 40 # The size of each square in the grid.
GRID_DIMENSIONS = (6, 5) # The number of squares in the x and y directions in the grid.
# Initiate the grid. PIXEL_SIZE and GRID_DIMENSIONS are required and everything else is optional.
# The extras variable is a list of values that you want contained in each pixel - for example a temporary distance in Dijkstra's algorithm.
grid = pygrille.Grid(PIXEL_SIZE, GRID_DIMENSIONS, extras = ["Hello", "World"], framerate = 60, default_colour = pygrille.random_colour(), border_width = 10)
# Ensures the grid has not been closed each frame.
# Also updates the newclick and newkey variables (booleans - True if there is a new click or key press)
# And the lastclick (tuple - grid location of most recent click) and lastkey (string - name of most recent key pressed) variables.
while grid.check_open():
# If the user clicks on a square, set it to a random colour and set the border to a random colour.
if grid.newclick:
grid[grid.lastclick[0]][grid.lastclick[1]].colour = pygrille.random_colour()
grid[grid.lastclick[0]][grid.lastclick[1]].extras["Hello"] = "Clicked"
grid.border_colour = pygrille.random_colour()
# If the spacebar is pressed, print the status of the extra value "Hello" in the top left pixel.
if grid.newkey:
if grid.lastkey == "space":
print(grid[0][0].extras["Hello"])
# Draw the grid to the screen
grid.draw()
# Keep the grid running.
grid.tick()
# Once pygrille is closed, finish quitting it.
grid.quit()
Updates
0.2.1
- Added a check for clicking UI elements via the grid.newclick_ui and grid.clicked_ui attributes.
- Fixed an error in the example code in this README.
- Other minor changes.
0.2.0.1
- Reupload due to issue with first upload of 0.2.0.
0.2.0
- Updated grid initialisation.
- Added text as a UI option.
- Added image caching to speed up programs.
- Other code refactoring and minor changes.
0.1.0 (Mistakenly uploaded to PyPI as 0.1.1)
- Added the ability to force a window size and set the position of the grid in relation to this as desired.
- Added the possibility for UI elements.
- Added methods to Grid to get global coordinates from grid coordinates or vice-versa
- Other minor changes
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
pygrille-0.2.1.tar.gz
(6.3 kB
view details)
Built Distribution
File details
Details for the file pygrille-0.2.1.tar.gz
.
File metadata
- Download URL: pygrille-0.2.1.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6460588f73905fe1d3bb7803c3fd94a2d1a76fede2c1cfd9f1a1a4873e137b8e |
|
MD5 | 7a06ed831672399d3b7ddd6ce49b4100 |
|
BLAKE2b-256 | fb244fc26864036b374fa24c9c3a37fc8fb57a38be3da3ed4b996e5ec8a6d25c |
File details
Details for the file pygrille-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: pygrille-0.2.1-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca180cf06d3d6573ccbc55ab6e8ef5036feb6b39a1ebb1d9b75122c1b871aa6a |
|
MD5 | dbc30bf260e38a4284cd8e6b4e567c8f |
|
BLAKE2b-256 | b33d64a5d8ed6bbb5ad13671e7eef6ac88c17d913b4022d42e6523e379bc12cc |