This This project is part of the Graphical applications in Java class. It is lectured by Kris Aerts. The goal of this project is to create a graphical and interactive application. A game is allowed but is not required. Simulations, procesvisualisations,... are perfectly allowed.
Click to see the minimum requirements
-
Interactive: The user has to be able to do something.
-
Graphical elements: Visualisation or user drawn.
-
JavaFX: User interface has to be built with JavaFX (No AWT or Swing).
-
Model-View-Controller design: Has to be used, classes have to be documented (javadoc).
-
Level of difficulty: Has to be adequate, not to easy, not to difficult.
As the name suggests this is a visual maze solver. It shows how different algorithmes find (or do not find) their the end of the maze.
This application allows the user to select a start node and an end node. You can change the location of the start and end node by dragging then over to the desired spot with your mouse. After selecting these nodes it is possible to place solid nodes. These solid nodes are not traversable by the algorithmes. This enables the user to draw a maze to see how each algoritm solves the task at hand. This task is reaching the end node.
When you press iterate it is possible to see the selected algorithm work its way to the endpoint. For a fast way of seeing the result, just press finish. It will do all the calculations and draw the path instead of showing each iteration.
Always tries to go to the right.
Uses a randomized direction each iteration.
Always takes a clockwise turn if possible.
The star of them all, takes the shortest path possible.
- Maps; Load a maze from pre-defined mazes, save a drawn maze for later use.
- Synchronous execution; Split screen to see each algoritm execute simultaneously.
- UI improvements; E.G. make solid with left mouse button, make basic (delete solid) with right mouse button
- Kris Aerts - Lecturer - GitHub
- Jeffrey Gorissen - Student - GitHub
- Sebastiaan Vanspauwen - Student - GitHub
This project is licensed under the MIT License - see the LICENSE file for details.
-
Thank you Kris Aerts for the tip on starting with an always right algorithm.
-
Hat tip to anyone whose code was used for inspiration (Sources are in the code)
-
Wikipedia; For having so much information about everything
-
Sebastian Lague for helping understand A* (See links in AStar.java )