๐บ๏ธWebsite description: A tool that can help visualize four different graph traversal algorithms (Dijkstra's , Breadth-First Search (BFS), Depth-First Search (DFS), and A*) through simulating a boat โต in the ocean attempting to avoid icebergs ๐๏ธโ๏ธ while trying to find the best path to the treasure ๐.
๐Features: Users can click on any open space in the ocean/map to place icebergs ๐๏ธโ๏ธ which are obstacles for the boat. Clicking on an iceberg that is already placed will result in removing that particular iceberg. Along with that there is a drop down menu with all four of the algorithm options and once an algorithm is chosen there is a side panel (which can be toggled to be shown or hidden) that displays the exact implementation the algorithm is running. Furthermore once the user runs the simulation of an algorithm the path it found will be highlighted on the map with its unique color to help distinguish different paths (Dijkstra's ๐ , BFS ๐ฃ, DFS ๐ด, A* ๐ข).
๐๏ธExplanation of each button:
๐Randomize - Places the treasure and the boat on random points on the map (maintains a distance of at least 10 nodes between the two).
โชReset - Places the treasure and boat back to their original positions.
๐Clear IceBergs - Removes all of the IceBergs that were placed.
๐ซClear Path - Removes the highlighted path of previous algorithms to clean up the map.
โClear All - A combination of the other two clear buttons (clears everything of the map).
๐Run - Starts the visualization of the selected algorithm.
๐ฆStop - Run button transitions to a stop button once the algorithm is being visualized so clicking to will stop the simulation.
๐ง๐ฉLibraries and Tools: NodeJs, React, JavaScript, HTML, CSS, react-codemirror2, GitHub pages.
๐งAdditional information: While the algorithm is running unless the user clicks the stop button you cannot place any Icebergs, select another algorithm, and click any button aside from the Stop button. Also there is a swaying animation applied to the boat and IceBergs which also have a rippling animation to give the sense that they are floating in the water.
๐จUser Interface: