Metadata-Version: 2.4
Name: the-maze-py
Version: 0.2.6
Summary: A package that generates mazes
License-Expression: MIT
Project-URL: Homepage, https://github.com/Captaininja-Guy/mazepy
Keywords: maze
Classifier: Programming Language :: Python :: 3
Classifier: Natural Language :: English
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=2.4.6
Requires-Dist: pyvista>=0.48.4
Requires-Dist: matplotlib>=3.10.9
Requires-Dist: pillow>=12.2.0
Dynamic: license-file

mazepy
=======

A maze library based off of the book [Mazes for Programmers](https://pragprog.com/titles/jbmaze/mazes-for-programmers/) by Jamis Buck but with more stuff.

Installation
```bash
pip install the-maze-py
```

Maze Shapes Supported
---------------------
#### 2D
* Rectangular
* Polar (Circular)
* Hexagonal
* Triangular
* Arbitrary shapes with masking
#### 3D
* Layers (Grid 3D)
* Cylindrical
* Spherical
* Cube
* Toroidal
* Möbius Strip

Generation Algorithms Supported
-------------------------------
* Aldous Broder
* Binary Tree (not triangular)
* Ellers (not triangular)
* Fractal Tesselation (only rectangualar)
* Growing Tree
* Hunt and Kill
* Kruskals (not polar, hexagonal, or triangular)
* [Origin Shift](https://www.youtube.com/watch?v=zbXKcDVV4G0&pp=ygUbb3JpZ2luIHNoaWZ0IG1hemUgbWluZWNyYWZ0)
* Prims (Simplified, True, Modified)
* Recursive Backtrack (DFS)
* Recursive Division (only Rectangular)
* Sidewinder
* Wilsons

Other Features
--------------
* Printing rectangular mazes
* Generating pngs of mazes
* Color grids based on distance
* Viewing 3d grids in 3d
* Animations of maze creation and filling with color gradient


Examples
========
Showing a colored maze
----------------------
```python
import mazepy as mp

grid = mp.grids.ColoredGrid(10,10, base='red', end='blue')
mp.algorithms.Ellers(grid)
grid.distances = grid[5, 5].distances()   # Set starting cell (this is required)
grid.show()
```

<img src="https://raw.githubusercontent.com/Captaininja-Guy/mazepy/refs/heads/main/pictures/colored.png" width="400"/>

Mazes of different shapes
-------------------------
```python
import mazepy as mp

grid = mp.grids.PolarGrid(10)
mp.algorithms.RecursiveBacktrack(grid)
grid.show()
```
<img src="https://raw.githubusercontent.com/Captaininja-Guy/mazepy/refs/heads/main/pictures/polar.png" width="400"/>
