In my freshman year Fundamentals of Computer Science 2 class, I created an interactive maze "game" in Java.
The program creates a random maze by making walls around the edges of a minimum spanning tree of a randomly weighted graph. The minimum spanning tree is found using Kruskal's algorithm.
In addtion to creating a random graph, the program also implements breadth-first search and depth-first search on the graph, highlighting the completed path at the end. In the animated GIF above, fast breadth-first search is shown.
The code for my project can be found here.