This project is a visualization of several simple graph-theory algorithms through the use of a GUI.
Simply compile the files in the src folder. The main method is in com.magnesiumm.logic.Run Make sure to set the classpath. Make sure you are in magnesiumm directory.
javac -cp "absolute classpath pointing to src folder" Run.java
java -cp "absolute classpath pointing to src folder" com.magnesiumm.Run
Speed Slider - Changes the speed at which the visualization occurs.
Real Time (Seizure Warning) Button - Pressing this button will either enable or disable an option that allows the visualization to occur in real time. The first time you press this button, there's a surprise.
Reset Button - Pressing this button will reset the visualization, but not the settings. It will allow you to change the settings.
Demo mode - This is the default, it runs the program in a mode where the generation and solve algorithms are randomly selected. Custom mazes may still be used.
Custom mode - This unlocks the generation and solve menus and allows the user to choose their own generation and solve algorithms.
Generated maze size slider - This sets the scaling on the generated maze. It will always try to make the nodes of the maze as square as possible.
Current maze file path - Displays the file path of the currently selected maze. "resources/generatedMaze.txt" by default.
Change maze file path - Allows you to import a custom maze to be solved - file must be formatted to specifications listed in static variables of the Node class. "resources/maze3.txt" is an example of an importable maze file.
This menu is only available when custom mode is enabled.
DFS (Depth-First-Search) random generation - Generates a maze using a randomized recursive DFS (Depth-First-Search) algorithm.
This menu is only available when custom mode is enabled.
DFS (Depth-First-Search) - Solves the maze using a non-random recursive DFS (Depth-First-Search) algorithm.
BFS (Breadth-First-Search) - Solves the maze using a non-random iterative BFS (Breadth-First-Search) algorithm.
This button can be used to stop and start the visualization, like a pause button. It can also be activated via the space bar.