# Path-Finding-Visualisation-with-Pygame A path-finding visualisation program using Pygame Deminstration Video - https://www.youtube.com/watch?v=aW9kZcJx64o # Features 1. Pygame GUI 2. Placeable walls/obsticles in the gui 3. Placeable checkpoints for the pathfinding algorithm to follow 4. 4 different pathfind algorithms; Depth-first search, Breadth-first search, dijkstra and A* 5. Hotkeys to remove cirtain details from the gui 6. Adjustable speed of visualisation 7. Adjustable size of the grid by scrolling - Keybinds listed at the bottom of the readme # Depth-first Search - Rule of expansion - Expand most recently added node - Order of expansion - Up, Right, Down, Left - Doesn't give the shortest route most of the time - Acts like humans in perfect mazes and sometimes can be way faster than other algorithms - However even on the simplest mazes it can skip right past the end point # Breadth-first search - Rule of expansion - Expand least recently added node - Acts like a wide net that covers every node that is closest in order - Always finds optimal route, however can be quite slow in long range searches # Dijkstra - Rule of expansion - Expand node closest to starting node using g value - Because in this visualisation it can only move in 4 directions BFS and Dijkstra are identical in result but Dijkstra uses more computational power # A Star - Rule of exspansion - Expand node with lowest f value, aka node that is close to the straightest diagonal path from the start node to end node put simply - Hueristic used is Manhanntan Distance # And some gifs showing off some of its features - The abilty to add and remove checkpoints - The abilty to scroll the gui before, during and after the animation - The abilty to adjust the speed of the animation to make it slower or faster (or even instant) # Keybinds - 1-9: Place checkpoints for the pathfinding algorithm - Left Mouse Click: Place walls - Right Mouse CLick: Remove walls or checkpoints - q: Run DFS algorithm - w: Run BFS algorithm - e: Run Dijkstra algorithm - r: Run A Star algorithm - z: Remove the last runs visualisation - x: Completely clear the board - Mouse Scroll: Zoom in and out - Space: Generate random walls/maze - +: Increase speed of animation - -: Decrease speed of animation