The MicroMouse Competition held by the Brown University chapter of IEEE challenges groups of students to build and program a robot to navigate a maze as quickly as possible. Our group wants to test our design, MicroMau5, on different mazes designed to bring out the weak areas of our algorithms. To easily simulate these situations without actually building mazes, I created an online interface for randomly generating mazes and then solving them using our proprietary algorithm.
The maze solving algorithm is written in Java and when given dimensions as arguments, generates a random maze using a recursive algorithm modeling a random walk. The random maze is passed to our maze solving algorithm which models the environment of a robot in an unknown maze. Properties for a position in the maze can only be accessed if the robot has visited the cell, or can infer properties by traversing around other cells.
I ported this Java algorithm to a web application using Node.js and Heroku. A simple Node.js server uses the dimension passed it by the user to call the Maze Generator algorithm and return a random maze. The solution to this maze using our Solving algorithm is then returned via Standard Out and parsed by the Node.js server. This parsed output is then used to demonstrate the path the robot would take exploring and solving the maze.