Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/razimantv/mazegenerator
Generate mazes of different shapes and arbitrary sizes using graph theory
https://github.com/razimantv/mazegenerator
c-plus-plus graph-algorithms maze maze-generator
Last synced: about 15 hours ago
JSON representation
Generate mazes of different shapes and arbitrary sizes using graph theory
- Host: GitHub
- URL: https://github.com/razimantv/mazegenerator
- Owner: razimantv
- License: mit
- Created: 2013-05-25T16:24:56.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-11-01T03:06:07.000Z (about 1 year ago)
- Last Synced: 2024-12-16T03:02:25.762Z (8 days ago)
- Topics: c-plus-plus, graph-algorithms, maze, maze-generator
- Language: C++
- Homepage:
- Size: 1.43 MB
- Stars: 1,048
- Watchers: 23
- Forks: 94
- Open Issues: 3
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Maze generator
**Generate mazes of different shapes and arbitrary sizes**
![Maze types](/examples/mazes.png "Maze types")Maze generator can create rectangular, hexagonal, honeycomb and circular mazes.
Maze generation can be done using Kruskal's algorithm, depth-first search,
breadth-first search, loop-erased random walk or Prim's algorithm. Mazes can be
rendered in svg or png format (using gnuplot as intermediate in the latter
case).## Dependencies
Maze generator uses gnuplot (with a system call `gnuplot`) to render png mazes.
So make sure that `gnuplot 5.0+` is installed with `pngcairo` terminal support
and is in the path if you wish to use png.The code is written in C++ 11, you will need a not-too-ancient C++ compiler to
build it.## Installation
```
cd src; make
```## Usage
```
Usage: mazegen [--help] [-m ] [-a ]
[-s | -w -h ]
[-t ]Optional arguments
--help Show this message and exit
-m Maze type
0: Rectangular (default)
1: Hexagonal (triangular lattice)
2: Honeycomb
3: Circular
4: Circular (triangular lattice)
5: User-defined
-a Algorithm type
0: Kruskal's algorithm (default)
1: Depth-first search
2: Breadth-first search
3: Loop-erased random walk
4: Prim's algorithm
-s Size (non-rectangular mazes, default: 20)
-w,-h Width and height (rectangular maze, default: 20)
-t Output type
0: svg output (default)
1: png output using gnuplot (.plt) intermediate
-o Prefix for .svg, .plt and .png outputs (default: maze)
```## Issues
The arcs in the circular mazes are plotted as parametric curves in gnuplot, and
png can take quite long to render for large mazes.