This project implements a pathfinding algorithm, A* to solve large-scale maze environments represented as BMP images.
The solver processes maze images, applies the A* algorithm, and outputs the solution as a BMP file with the optimal path drawn.
It was developed as part of a BSc final thesis, focusing on algorithmic efficiency and large-scale image-based problem solving.
- Solves mazes represented as BMP image files
- Uses A* algorith with priority queue–based frontier
- Handles mazes up to 2000×2000 pixels
- Outputs the solved path as
result.bmp
- Supports single-solution and multi-solution mazes
- Language: C
- Main modules:
main.c
— Core program and execution loopDeclarations.h
— Function declarationsStackFunctions.h
— Priority queue and stack utilitiesGraphFunctions.h
— Graph and node handling
- Maze bitmaps are located in the
/BMP_folder/
directory - The program saves solutions in
result.bmp
- Some special cases:
- Braid and combo mazes → contain multiple valid solutions
- Standard mazes → have a single unique solution
- For mazes larger than 1000×1000 px, the program requires over 8 GB of RAM
- Mazes up to 2000×2000 px may consume ~13 GB RAM
- Must be compiled as a 64-bit application to avoid memory address limitations
This solver demonstrates the efficiency of the A* search algorithm applied to graphical data, exploring memory and performance constraints in large-scale maze-solving tasks.
🧠 Developed as part of my Bachelor’s Thesis project at [FESB].