Maze Builder Docs 6.0.1
|
Create and customize mazes on multiple platforms and languages. Below is an example of the string generated from the command-line interface example.
The library provides multiple export formats like Wavefront object, PNG and JPEG images, JSON, and plain text or stdout.
Here's an example JSON output:
Run the binary_tree
algorithm with long arguments:
Run the dfs
algorithm with short arguments:
Use the C++ API in a modern C++ program:
CMake 3.2 or greater is required. The examples and tests require external dependencies which can be grabbed from the Internet:
Use the following CMake options to configure the project:
CMake Option | Default | Description |
---|---|---|
MAZE_BUILDER_EXAMPLES | OFF | Build with project examples enabled. |
MAZE_BUILDER_COVERAGE | OFF | Build with code coverage using CppCheck . |
MAZE_BUILDER_TESTS | OFF | Build with testing using Catch2 . |
MAZE_BUILDER_DOCS | OFF | Build the docs using doxygen . |
MAZE_BUILDER_MEMCHECK | OFF | Build with Valgrind and Memcheck support. |
CMAKE_TOOLCHAIN_FILE | cmake | Building with a specific toolchain. Useful for `Emscripten` builds. |
Configure it: cmake -GNinja -S . -B build-examples -DMAZE_BUILDER_EXAMPLES:BOOL=ON
Build it: cmake --build build-examples --config Release
By default, both a shared-object library and static library are produced. The shared and static files have different naming conventions depending on the platform:
Platform | static lib | shared lib |
---|---|---|
Windows | mazebuildercore_static.lib | mazebuildercore_shared.dll |
Linux | libmazebuildercore_static.a | libmazebuildercore_shared.so |
MacOS |
Configure the project for testing: cmake -S . -B build-tests -DMAZE_BUILDER_TESTS:BOOL=ON
Run the tests: ctest --test-dir build-tests/tests --verbose -C Debug
Configure examples for the browser using Emscripten and their toolchain file.
The Ruby script mazes.rb
generates PNG images of mazes using algorithms and methods similar to the C++ library. It is a good place to start learning about the maze-generating algorithms. The Python script solver.py
plays with the maze generation by loading PNG files and finding paths and networks.
Script dependencies:
gem install chunky_png
pip install numpy pillow networkx
Provided is a web interface in a voxel world that enables interactive maze generation.
Check out the this example in a live app!
The web app can be run locally with the provided secure_http_server.py script. Once the provided script is running, then open the browser to http://localhost:8000
.