An extensible C++20 library for creating and solving mazes.
NOTE: This library currently has some serious performance issues. I'm currently occupied with other projects. I don't kown when or if I will revisit this project.
- Work with mazes through an easy to use class
- Export mazes
- Exporter interface
- PNGExporter
- Create png image files showing the maze
- MinecraftExporter
- Create datapacks which generate the maze in-game
- JSONExporter
- Create json files representing the maze
- Load mazes
- Loader interface
- PNGLoader
- Load png files created using
PNGExporter
- Load png files created using
- JSONLoader
- Load json files created using
JSONExporter
- Generate mazes
- Create weighted graphs from mazes
- Solve mazes
sudo pacman -S catch2 libpng
Install the following libraries:
Run the following commands (Change Release
to Debug
for debug build):
git clone https://gitlab.com/Bananenpro05/libmaze.git
cd libmaze
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
¯\(o_o)/¯
Run the following command in the build directory after building as debug build:
./tests
After running the tests you can manually check the outcome of all algorithms
by checking the corresponding png file (e.g. depth-first.png
).
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Copyright © 2021 Julian Hofmann