
The maze generator is based on [Randomized depth-first search](https://en.wikipedia.org/wiki/Maze_generation_algorithm#Randomized_depth-first_search) with an [Iterative implementation (with stack)](https://en.wikipedia.org/wiki/Maze_generation_algorithm#Iterative_implementation_(with_stack)) approach for optimization.
Furthermore, the maze generator is optimized to only use a **single layer of the maze to open the walls**: this make uses of **the 8 allocated cases surrounding a free case to be walls (purple cases)** avoiding the need for another layer to open the walls. Herefrom, the algorithm is modified to jump every 2 cases as if there was nothing in-between except for when a wall needs to be opened.
## Features
- When recording is enabled:
- Export the maze animation to a JS file that can be replayed in a web browser.
- Locate each case where there is a 3-way intersection.
- Generate a maze for any X and Y.
- Export the maze into a CSV file.
- Real-time update by hovering over a case (tooltip) while the maze is being generated.
- Progress bar for how many cases to visit before the end of the generation.
- Upscaling **(before running the animation)**.
- Localization in English, French, Spanish, German and Polish.
## License
GNU AGPLv3
> Maze generator, version 1
> Copyright (C) 2024 Foxarc
>
> This program is free software: you can redistribute it and/or modify
> it under the terms of the GNU Affero 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 Affero General Public License for more details.
>
> You should have received a copy of the GNU Affero General Public License
> along with this program. If not, see <https://www.gnu.org/licenses/>.