Hola:
Bueno hace tiempo hice un programa de laberinto en visual c++, pero supongo que debe funcionar igual para c/c++.
La primera idea que debes tener en cuenta el la forma como quieres que se resuelva el laberito:
1.- Tener el laberinto dibujado en un .txt u otro archivo donde estara definido por una dimension n*m (con una solucion claro!, no te olvides las paredes...).
2.- Es la forma de recorer este archivo, y pasarlo a un array bidimensional.
3.- teniendo el laberinto (archivo), ya es facil; tan solo debes especificar la ruta que debe siguir como ir: adelante, atraz, abajo, arriba... para eso tendras que utilizar recursividad y un pila (algo que te almacene el recorido)... nada mas...
4.- la forma de verlo, es cosa practica no mas.. dibujar la solucion mientras se este en el bucle y listo!...
Bueno.. espero que mi ayuda te sirva de algo...