I built this A* implementation in high school, originally in Java using the Processing library. I then ported it to JavaScript for web display. It generates the maze using Prim’s algorithm (and then removing random walls to ensure multiple paths exist to the goal), and assigns each tile a random weight, with the algorithm preferring the lowest-weighted path.

In addition to this small preview, there is an interactive full-screen version accessible at https://theocoulson.com/stuff/code/AStarJS/. Press space to start and end. Use the arrow keys to change the dimensions of the maze.

Unfortunately, this project was completed before I began to regularly use version control, so I no longer have the Java source code.