Skip to content

jasonli8408/PathFinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

125 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Path Finder

This is a project that educates users on path finding algorithms. In our User Interface:

- Blue nodes represent start node

- Red nodes represent end node

- Black nodes represent obstacles where the search algorithm cannot pass through.

- Magenta nodes represent locations where the algorithm looked through

- Green nodes represent locations where the algorithm can step on for the next iteration

- Pink nodes represent the path from start to end node, if such a path exists.

We've included the following algorithms:

  1. A*
a.and.maze.generator.mov
  1. Dijkstra
Dijkstra.mov
  1. Bi-directional
bidirectional.mov
  1. Holistic value search (greedy). Does not give the shortest path
Holistic.mov
  1. Breadth first search (BFS) note that BFS can not go diagnal
BFS.mov

To use this application:

  1. hold s on keyboard to place a starting point
  2. hold e on keyboard to place the ending point
  3. hold b, and drag the mouse across the grid to create your own obstables to challenge the path finding algorithms. Or simply select "make maze" button to randmoly generate a maze.
  4. select desired algorithms from the drop box and run the find path algorithms using the find path button.
  5. one can also remove obstables or remove everything by selecting the corresponding buttons.
clear.capabilities.mov

To demonstrate the process of the algorithms, we employed the Observer Design Pattern to show the exploration of process at each iteration. This is a very effective and concise way to visually demonstrate how each algorithms differ in terms of exploation process and run time.

addition note :

if the user desires to slow down the process of the algorithms at each iteration, simply uncomment timer delay code in the update method in the GUI class

About

Path finder of the shortest distances between two coordinates in a grid. User has the capability of creating obstacles in the grid.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages