Skip to content

This is my final project for my Java Programming class at Cal State Fullerton. This app traces the shortest path from one cell to another and can generate maze for advanced pathfinding.

Notifications You must be signed in to change notification settings

JayDiddyThaGOAT/PathFinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Demonstration

Installation

  1. Install JDK 11
  2. Download the ZIP file or clone the git repository
  3. Click on Jalen's Pathfinder.jar

How to Use

  • Left Click on a button in the grid to pick a start point

  • Left Click on another button in the grid to pick an endpoint and start the pathfinder

  • Right Click on a button to add a wall

  • Drag the Grid Size slider to the left to make it smaller or to the right to make it bigger

  • Drag the Delay (in milliseconds) slider to the left to speed up the pathfinder or to the right to slow down tha pathfinder

  • Check the Include Diagonals box to add diagonals in the pathfinder

  • Check the Generate Maze box to generate a random maze

Algorithms

  • A* algorithm to calculate the shortest path

    • Find the cell closest to the end point
    • Add surrounding nodes of that cell for evaluation
    • Construct the path that was found
    • Show Error If No Path Was Found
  • Recursive algorithm to generate a random maze

    • Begin with a empty grid
    • Set the wall sizes to the width and height of our grid
    • Split the maze into fourths with a horizontal wall & vertical wall
    • Add two passages through each side of the horizontal wall & vertical wall
    • Recursively divide each of the four sides of the maze until the width or height of the walls are 2 cells

About

This is my final project for my Java Programming class at Cal State Fullerton. This app traces the shortest path from one cell to another and can generate maze for advanced pathfinding.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages