Skip to main content

CLI utilite for generating and displaying mazes in the terminal

Project description

aMAZEme

Upload Python Package GitHub tag License

Maze generation tool that will amaze you!

demo

amazeme is a terminal-based maze generator and viewer implemented in Python using the curses library. This tool allows users to visualize mazes directly in the terminal, customize the appearance with various options, and even provide their own maze generation algorithms.

Features

  • Custom Algorithms: Ability to load and use custom maze generation algorithms from external Python files.
  • Customizable Appearance: Adjust wall and background colors, use different characters for walls and spaces.
  • Solid Mode: Option to double the wall and space characters for a denser display.
  • Shuffle Mode: Randomize the characters used for walls and spaces.
  • Real-Time Updates: Option to continuously refresh the maze display.

Installation

To install amazeme, you need to have Python 3 and pip installed.

You can then install amazeme via pip using the following command:

pip install amazeme

You can also install it via pipx:

pipx install amazeme

Usage

After installation, you can run amazeme from the terminal with various options to customize the maze display.

To display a maze with default settings:

amazeme

Options

  • -c, --wall-color: Set the color of the walls. You can use color names (e.g., red, blue) or integer color codes. Use -1 for default terminal foreground.

  • -b, --bg-color: Set the background color. Use color names or integer color codes. Use -1 for default terminal background.

  • --solid-mode: Enable solid mode to double the characters used for walls and spaces.

  • --wall: Specify the string for walls (e.g., #, , ><). Defaults to ███.

  • --space: Specify the character for spaces (e.g., ., ). Defaults to a single space.

  • --shuffle: Randomly shuffle the wall and space characters during rendering.

  • --live: Enable live updates of the maze display. The maze will continuously refresh.

  • --rate: Framerate to refresh maze. Works only with --live.

  • --source: Provide the path to a .py file containing a custom generate_maze(width, height) function. This allows you to use your own maze generation algorithm.

Example Commands

  • Display a maze with red walls and black background:

    amazeme -c red -b black
    
  • Use custom characters for walls and spaces with solid mode:

    amazeme --wall "###" --space "." --solid-mode
    
  • Enable live updates and shuffle 123 characters:

    amazeme --live --shuffle --wall "123"
    
  • Use a custom maze generation algorithm from custom_maze.py:

    amazeme --source /path/to/custom_maze.py
    

Custom Maze Generation

To provide your own maze generation algorithm, create a Python file with a function generate_maze(width, height). This function should return a 2D list (list of lists) where each element is 0 for spaces and 1 for walls.

Example of a custom maze generation file (custom_maze.py):

def generate_maze(width, height):
    """ My incredible maze generation function """
    return [[1 if (x + y) % 2 == 0 else 0 for x in range(width)] for y in range(height)]

There is also a bunch of different generators in generators folder in GitHub repository of project.

Feel free to contribute and add your own generators!

Contributing

Contributions are welcome! If you have suggestions or improvements, please fork the repository and submit a pull request.

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/YourFeature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature/YourFeature).
  5. Open a pull request.

License

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


Made with ❤️ by zabojeb

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

amazeme-1.0.1.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

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

amazeme-1.0.1-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file amazeme-1.0.1.tar.gz.

File metadata

  • Download URL: amazeme-1.0.1.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for amazeme-1.0.1.tar.gz
Algorithm Hash digest
SHA256 c2363fee52bcfa4128780665833b0538a4673d6997cb9bfa1d0bcc4d4dddb0d4
MD5 8749a826b15160df885dfbbf3c850e50
BLAKE2b-256 141b8face2825f7418c3d8662b382826f92e76f6e6451692c71b0c17d10ef59e

See more details on using hashes here.

File details

Details for the file amazeme-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: amazeme-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for amazeme-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 10be5a75168bc53f591918dd8284239febce4c50292da7d28c2ad65ff1480c93
MD5 0b3ff33fbaaf3779340f8b5dcd7cac91
BLAKE2b-256 c125c1116eb694569a8f315934ceac0c60dfd3588151e1d9d2cd00b9e21750ad

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