Skip to main content

Creating mazes using prims' algorithm for the stara project

Project description

Stara Maze Generator

A Python package for generating, solving, and visualizing mazes using a modified version of Prim's algorithm. The mazes are represented as NumPy arrays and can be exported as HTML visualizations.

Features

  • Generate random mazes using a modified Prim's algorithm
  • Configurable maze size and minimum number of valid paths
  • Reproducible maze generation using seeds
  • Pathfinding using Breadth-First Search (BFS)
  • Export mazes as HTML visualizations with optional solution paths
  • Efficient maze representation using NumPy arrays

Installation

The package can be installed using pip:

pip install stara-maze-generator

Or using Poetry:

poetry add stara-maze-generator

Usage

Command Line Interface

The package provides a command-line interface for quick maze generation:

# Generate a default 40x40 maze
generate-maze

# Generate a 20x20 maze with custom start/goal positions
generate-maze --size 20 --start 0 0 --goal 19 19

# Generate a maze with a specific seed and show solution
generate-maze --seed 123 --draw-solution

# Generate a maze with more paths
generate-maze --min-valid-paths 5

Python API

from pathlib import Path
import numpy as np
from stara_maze_generator.vmaze import VMaze
from stara_maze_generator.pathfinder import Pathfinder

# Create a 20x20 maze
maze = VMaze(
    seed=42,              # Random seed for reproducibility
    size=20,              # Creates a 20x20 grid
    start=(1, 1),         # Starting position
    goal=(18, 18),        # Goal position
    min_valid_paths=3     # Minimum number of valid paths
)

# Generate the maze structure
maze.generate_maze(pathfinding_algorithm=Pathfinder.BFS)

# Find a path from start to goal
path = maze.find_path()

# Export as HTML visualization
maze.export_html(Path("maze.html"), draw_solution=True)

Maze Representation

The maze is represented as a 2D NumPy array where:

  • 0 represents walls
  • 1 represents passages
  • The maze is guaranteed to have at least min_valid_paths different paths from start to goal

HTML Visualization

The exported HTML visualization includes:

  • Color-coded cells (walls, passages, start, goal)
  • Optional solution path highlighting
  • Responsive grid layout
  • Maze information (size, seed, algorithm used)

Development

To set up the development environment:

# Clone the repository
git clone https://github.com/yourusername/stara-maze-generator.git
cd stara-maze-generator

# Install dependencies with Poetry
poetry install

# Run tests
poetry run pytest

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

stara_maze_generator-0.2.0.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stara_maze_generator-0.2.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file stara_maze_generator-0.2.0.tar.gz.

File metadata

  • Download URL: stara_maze_generator-0.2.0.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.0 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for stara_maze_generator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e54f4f5d4cfe27f89729f73bf61a3e42c38d5974a6a33ac72ee8e19443542771
MD5 984549ce01155c102b6c38303c372a2e
BLAKE2b-256 c88fa2f0d562b57e0bd23e6d72eb8b3c00b8c9fee6d8dc7c59388905b6313200

See more details on using hashes here.

File details

Details for the file stara_maze_generator-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: stara_maze_generator-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.0 CPython/3.12.1 Linux/6.5.0-1025-azure

File hashes

Hashes for stara_maze_generator-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4254d3dfb44f16f6fd1ccbfbcca736fee2098196767fa72a930a64176f01fa3f
MD5 150baf403931739493e6bb3ad575189c
BLAKE2b-256 f4e229c09dd38ff00ca2b851e3f246156304d3d0498b36c444c3ab93f3dcd5e7

See more details on using hashes here.

Supported by

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