Skip to main content

Create polygon-tesselation mazes from a variety of sources.

Project description

================================================= PolyMaze - Create mazes from a variety of sources =================================================

This utility converts several different kinds of inputs into mazes.

Allowed Inputs:

  • Aspect ratio (height / width) of a rectangular maze

  • Text - convert the content of the string into a maze / mazes

  • Image - convert the dark parts of an image into a maze / mazes

Options:

  • Height / Width - adjust the difficulty (measured in polygon side lengths)

  • Complexity - adjust the difficulty (measured in polygon density)

  • Font - use your own font when making a String maze (especially for unicode strings)

  • Shape - explicitly choose the type of tesselation used in the maze

https://github.com/kobejohn/polymaze/raw/master/docs/Globe_Polycat_small.png https://github.com/kobejohn/polymaze/raw/master/docs/String_small.png

Installation:

polymaze should work with Py2 or Py3.

pip install polymaze

If you get the error decoder zip not available when using it, then probably PILLOW did not install completely. Try to upgrade or reinstall PILLOW and make sure it says png support was installed.

Commandline Usage:

To make a generic rectangular maze, at the command line:

polymaze
https://github.com/kobejohn/polymaze/raw/master/docs/rectangle_small.png

To see all options:

polymaze -h

For example, to make a string into a maze with some extra options (note the n gets converted to a real newline internally):

polymaze --text "Happy\nBirthday!" --complexity 10 --shape Polycat
polymaze -t 迷路 -c 10 -s OctaDiamond --font meiryob.ttc
https://github.com/kobejohn/polymaze/raw/master/docs/birthday_small.png https://github.com/kobejohn/polymaze/raw/master/docs/unicode_small.png

Everything above assumes the command line entry point (named polymaze) works after installation. If not, then you will need to navigate to the root package directory and use:

python cli_runner.py [--options...]

Library Usage:

Please see demo.py for examples of how to use the components. You can also run it simply with:

python demo.py

The primary components are PolyGrid (the geometric core of the whole package), and PolyMaze which converts a PolyGrid into a maze.

Extension:

If anyone is interested, I can document how to specify new tessellations.

Background and Feedback:

I developed this to regain some basic trigonometry skills which I have lost over the years.

If you find this useful or have any feedback, please let me know! Specifically I have only tested this on Windows so please make an issue if it doesn’t work in Linux, etc.

License:

MIT. See LICENSE

Bundled Noto CJK Font:

SIL Open Font License, Version 1.1. See polymaze/font/LICENSE_CJK.txt

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

polymaze-0.7.0.zip (15.9 MB view details)

Uploaded Source

Built Distribution

polymaze-0.7.0-py2.py3-none-any.whl (15.8 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file polymaze-0.7.0.zip.

File metadata

  • Download URL: polymaze-0.7.0.zip
  • Upload date:
  • Size: 15.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for polymaze-0.7.0.zip
Algorithm Hash digest
SHA256 4723ddfa1cf80d65884ebb7c47755e69aab9da31a0aac313f9328f75895ac1ca
MD5 8ea20fdd6a955010d372aea05cf95762
BLAKE2b-256 5bf3ca5c113a31e658f3bc1b43138f0b8b9e4fb10ce1d2b93f9081301d4963dd

See more details on using hashes here.

File details

Details for the file polymaze-0.7.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for polymaze-0.7.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5446ef6212a54cc5ac403c05db8ee70211c44d699cde4c0de33f03596efa08f1
MD5 97e0889c6afb7454a5975158d65ba0a2
BLAKE2b-256 f4391bbb6507d81d1b9c2612de75ca3517f00dfae04790ecfebfbc2eec00c414

See more details on using hashes here.

Supported by

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