Skip to content

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.

License

Notifications You must be signed in to change notification settings

J3G0/VisualMazeSolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VisualMazeSolver (by Sebastiaan and Jeffrey)

Assignment for Graphical applications in Java

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.

Minimum requirements

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.

VisualMazeSolver

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.

Click to see tile selection

Tiletypes

Click to see maze buiding and node location placement

Maze buiding

Different algorithms

Always right

Always tries to go to the right.

Click to see the "Always right" algorithm

AlwaysRight

Drunk

Uses a randomized direction each iteration.

Click to see the "Drunk" algorithm

Drunk

Turn clockwise

Always takes a clockwise turn if possible.

Click to see the "Turn Clockwise" algorithm

ClockWise

A Star

The star of them all, takes the shortest path possible.

Click to see the "A Star" algorithm

AStar

Future work

  • 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

Authors

  • Kris Aerts - Lecturer - GitHub
  • Jeffrey Gorissen - Student - GitHub
  • Sebastiaan Vanspauwen - Student - GitHub

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • 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 )

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages