Jean-Lcs / Maze_solver

This maze solver is based on the Dijkstra algorithm. Each free cell being considered as a node, and each full cell being considered as a node located at infinite distance from all empty cells. The entire algorithm (including the 10 extras) has been hand-coded in Java, with an object-oriented method including a very rigorous architecture.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maze_solver

cover

This maze solver is based on the Dijkstra algorithm. Each free cell being considered as a node, and each full cell being considered as a node located at infinite distance from all empty cells. The entire algorithm (including the 10 extras) has been hand-coded in Java, with an object-oriented method including a very square architecture.

The different classes are:

  • In the Dijkstra folder all classes allowing the implementation of the algorithm if known:
    • GraphInterface: class of graphs associated with the problem
    • ASet: which allows modification of the graphs via the different vertices
    • Pi: class associated with the distance between two nodes
    • Previous: refers to the father of a node
    • VertexInterface: class of a vertex
  • In the Maze folder, all classes related to the maze itself:
    • MBox: class for any box
    • ABox: class for the arrival box
    • DBox: class for the departure box
    • EBox: class for an empty box
    • WBox: class for a 'wall' box, that is not empty
    • Maze: class which assembles a real maze with nodes with all these boxes

All the test mazes are located in the data files. There are also cases where I created errors in order to warn if there are no solution, or departure/arrival point/ of a wrong format of the maze.

About

This maze solver is based on the Dijkstra algorithm. Each free cell being considered as a node, and each full cell being considered as a node located at infinite distance from all empty cells. The entire algorithm (including the 10 extras) has been hand-coded in Java, with an object-oriented method including a very rigorous architecture.


Languages

Language:Java 100.0%