A-Maze-ing is a maze generator and solver written in Python as part of the 42 School curriculum. This project focuses on maze generation algorithms, shortest-path computation, graphical rendering with MiniLibX, and modular software design.
The subject challenges students to build a fully functional maze system capable of generating, displaying, and solving perfect and imperfect mazes.
This project received a high score.
- Standalone maze generator
- Generation of perfect and imperfect mazes
- Shortest-path computation
- Parsing of a
config.txtfile - Creation of
output_map.txtaccording to subject requirements - Interactive controls to:
- Change wall colors
- Regenerate the maze
- Show or hide the shortest path
- Graphical rendering using the MiniLibX library
- Simple animations to visualize maze generation and solving
- Extended configuration options
- Background music and sound effects (with an authored theme made by @SAMONEWESTER)
2026-04-14:
The following post-eval modifications can be found in the https://github.com/evaristoc/a-maze-ing-42/tree/feat/buttons branch of this repository (not PR'ed to master):
- the rendering of the path's triangles are now completed filled for all pointing directions
- a demo of a legend in the same viewport as the maze was fitted; it should show with a fixed
width x heightand centered when the width of the image is larger than the width of the legend - in the new demo legend, added a demo for mouse clicking interactivity: the green button next to the "Hide / Show Path" instruction logs "1111" on terminal when clicked with the left mouse button
This repository can serve as a reference for students working on a 42 maze project or similar Python graphics projects.
Key learning areas include:
- Depth-First Search (DFS) for maze generation
- Breadth-First Search (BFS) for graph traversal and shortest-path computation
- Pathfinding visualization techniques
- Using MiniLibX for window management and rendering
- Implementing animation loops and event-driven input
- Structuring a medium-sized, multi-module Python codebase
The project is mostly, but not only, made in OOP. We put care in the application of Software Engineering best practices beyond the common norm. In addition, reviewing the commit history and Issues section provides insight into collaborative development for small teams, iteration cycles, debugging strategies, and team-based project organization.
git clone https://github.com/evaristoc/a-maze-ing-42.git
cd a-maze-ing-42/project
# follow build and run instructions inside /project READMEThe project is inside the project folder. Detailed documentation is available in:
project/README.md
Details that you can find in the inner README file includes:
- Architecture breakdown
- Module responsibilities
- Design decisions
- Configuration structure
- Build and usage instructions
If you want to understand how the system works internally, start there.
This repository is intended not only as a completed school project, but as a learning benchmark for other students building algorithmic and graphical projects within the 42 environment.

