Rush Hour solver written in C++.
The necessary libraries are SDL2 and SDL2-TTF that you can install as below:
sudo apt-get install libsdl2-ttf-dev
sudo apt-get install libsdl2-dev
The application is able to solve a given puzzle that you can add in the /res folder. The algorithm is using depth first search algorithm to find a minimal solution.
The algorithm is making use of sets to store passed already states. There is a random level constructor but also an algorithm based on clustering to find the most maximum distance within a given graph. That's possible as every possible board is generated based on backtracking and taking union of their graphs, thus each distinct cluster is being solved by marking already passed nodes.
Running project:
make
For more info and interaction with test sets:
make help