Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/angeluriot/Maze_solver

An interactive online maze generator and solver able to use several different algorithms.
https://github.com/angeluriot/Maze_solver

css html javascript maze-generator pathfinding

Last synced: 8 days ago
JSON representation

An interactive online maze generator and solver able to use several different algorithms.

Awesome Lists containing this project

README

        

# 🗺️ Maze solver

![Release](https://img.shields.io/badge/Release-v4.0-blueviolet)
![Language](https://img.shields.io/badge/Language-JavaScript-ffcc14)
![Size](https://img.shields.io/badge/Size-346Ko-f12222)
![Open Source](https://badges.frapsoft.com/os/v2/open-source.svg?v=103)


This repository contains the source code of a web page that can generate and solve mazes using several algorithms. You can also move the start and the finish or draw your own walls.

The web page is online at the address : **[angeluriot.com/maze_solver](https://angeluriot.com/maze_solver/)**.





# 📋 Summary

* **[📋 Summary](#-summary)**
* **[✨ Features](#-features)**
* **[🧪 Tests](#-tests)**
* [🌀 Maze generation algorithms](#-maze-generation-algorithms)
* [➡️ Pathfinding algorithms](#%EF%B8%8F-pathfinding-algorithms)
* **[🙏 Credits](#-credits)**


# ✨ Features

* You can choose the pathfinding algorithm of the maze solver :



* You can move the start and the finish :



* You can also add and remove walls on the grid :



* But the program is also able to generate a maze and you can choose the algorithm :



* The `Clear` button allows you to clear the grid and the `Start` button runs the pathfinding algorithm


# 🧪 Tests

## 🌀 Maze generation algorithms

* **Randomized Depth-First :**



   

* **Kruskal's Algorithm :**



   

* **Prim's Algorithm :**



   

* **Wilson's Algorithm** *(unbiased)* **:**



   

* **Aldous-Broder Algorithm** *(unbiased)* **:**



   

* **Recursive Division :**



   


## ➡️ Pathfinding algorithms

* **Breadth-First** *(Slow but gives the shortest path)* **:**



   

* **Bidirectional Breadth-First** *(A little less slow and gives the shortest path)* **:**



   

* **Greedy Best-First** *(Very fast but does not always give the shortest path)* **:**



   

* **Dijkstra** *(Slow but gives the shortest path)* **:**



   

* **A\*** *(Fast and gives the shortest path)* **:**



   


# 🙏 Credits

* [**Angel Uriot**](https://github.com/angeluriot) : Creator of the project.