Skip to content

This is a multi-threaded Qt 6 front-end to a very portable (and memory efficient) C program I wrote to create and concurrently solve N-dimensional* mazes of any size.

Notifications You must be signed in to change notification settings

artcfox/maze-generator

Repository files navigation

Maze Generator
Copyright (C) 2009-2024 Matthew T. Pandina. All rights reserved.

This is a multi-threaded Qt 6 front-end to a very portable (and memory
efficient) C program I wrote to create and concurrently solve
N-dimensional* mazes of any size.

It uses a randomized Kruskal's algorithm to generate the mazes, and
solves them using a concurrent dead-end filling algorithm I designed.

You can configure the look and size of each maze, open and save mazes
in a highly compressed format, export them as a BMP files scaled to
the current zoom level, print them out on paper, or to a PDF file.

*This GUI only allows 2D mazes to be visualized.

Live Online Demo (compiled using Qt 6.7.0 for WebAssembly)

  https://artcfox.github.io/maze-generator/


Generic Build Instructions

  To build the Qt 6 version (for Desktop or Web Assembly), you can
  download and use the Qt 6.7.0 Online Installer.

Debian 12

  Qt6 Build Instructions

    sudo apt install build-essential qt6-base-dev
    git clone https://github.com/artcfox/maze-generator
    cd maze-generator
    qmake6 MazeGenerator.pro
    make

  Qt5 Build Instructions

    sudo apt install build-essential qtbase5-dev
    git clone https://github.com/artcfox/maze-generator
    cd maze-generator
    qmake MazeGenerator.pro
    make

Note: If building on a system which does not support pthreads, you can
      rename Maze.c to Maze.cpp, and its threading implementation will
      automatically switch from pthreads to std::thread.

About

This is a multi-threaded Qt 6 front-end to a very portable (and memory efficient) C program I wrote to create and concurrently solve N-dimensional* mazes of any size.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published