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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f775071 · May 13, 2024

History

27 Commits
Apr 30, 2024
Feb 20, 2018
Feb 20, 2018
Feb 25, 2018
Feb 24, 2018
Apr 29, 2024
May 13, 2024
Apr 29, 2024
Feb 16, 2018
Feb 17, 2018
Feb 17, 2018
May 6, 2024
Feb 16, 2018
May 6, 2024
May 6, 2024
Feb 26, 2018
May 13, 2024
May 6, 2024
Feb 22, 2018
Feb 20, 2018
Feb 26, 2018
May 6, 2024
Feb 23, 2018

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