A Maze Solver Robot project.
Explore Maze Solver Robot docs »

Report bug · Request feature

Maze solver Robot is a program to drive a robot through a 16x16 maze using Depth First Search as it’s path-planning algorithm. The program is integrated with Micro-mouse simulator a.k.a mms for visualizing the maze and the robot in real-time. The concepts of object-oriented programming, inheritance, and dynamic polymorphism were used to develop this project.

Table of contents


This app depends on Qt5 libraries. We can setup this up using apt-get package manager (for Debian linux) or conda virtual environment tool.

Quick start

Run instructions

To run the app, first finish the pre-requisites mentioned above, then

If every requirement is fulfilled a window should open as follow,



Documentation Status Maintenance Doc Tool made-with-C++ pyqt-version made-with-Markdown contributors Logo Flow-charts

What’s included

Within the download you’ll find the following directories and files, logically grouping the classes under src directory. mazefiles and mms directories are submodules based out of third party repo. You’ll see something like this:

├── mazefiles/ ...
├── mms/ ...
├── docs/ ...
├── img/ ...
├── src/
|   ├── Algorithm/ ...
|   ├── API/ ...
|   ├── LandBasedRobot/ ...
|   ├── LandBasedTracked/ ...
|   ├── LandBasedWheeled/ ...
|   └── Maze/ ...
├── main.cpp
├── CMakeLists.txt


For documentation related to the code you can refer the one provided under docs directory. A general outline explanantion with the help of flowcharts and images are provided in the following subsections,


  1. How to use
  2. Class Structure
  3. Depth First Search flowchart
  4. Node Object Data Structure
  5. Implementation
  6. Project Execution

1 How to use

Enter the initial state of the puzzle and goal state of the puzzle as shown in the fig below.

2 Class Structure

The following figure explains the class structure for all the classes in the src directory

3 Depth First Search & Ideal Implementation

4 Node Object Data Structure

Since the above mentioned DFS algorithm and Solver has lot of redundancy loops like exploring or visiting same trail of path frequently. This is definitely a optimization issue, which has been resolved with the help of our own custom Node data structure and custom dfs and solver implementation algorithm.

5 Project Execution

Bugs and feature requests

Have a bug or a feature request? Search for existing and closed issues, if your problem or idea is not addressed yet, please open a new issue.


@Sudharsan :

Thank you for visiting our Repo!