{"id":18487129,"url":"https://github.com/angeluriot/Maze_solver","last_synced_at":"2025-04-08T20:30:40.848Z","repository":{"id":110199661,"uuid":"231595463","full_name":"angeluriot/Maze_solver","owner":"angeluriot","description":"An interactive online maze generator and solver able to use several different algorithms.","archived":false,"fork":false,"pushed_at":"2024-05-16T12:12:47.000Z","size":19396,"stargazers_count":75,"open_issues_count":2,"forks_count":16,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-06T12:58:57.581Z","etag":null,"topics":["css","html","javascript","maze-generator","pathfinding"],"latest_commit_sha":null,"homepage":"https://angeluriot.com/maze_solver/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/angeluriot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-03T13:33:58.000Z","updated_at":"2024-10-15T03:05:26.000Z","dependencies_parsed_at":"2024-05-16T13:43:46.816Z","dependency_job_id":null,"html_url":"https://github.com/angeluriot/Maze_solver","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angeluriot%2FMaze_solver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angeluriot%2FMaze_solver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angeluriot%2FMaze_solver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/angeluriot%2FMaze_solver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/angeluriot","download_url":"https://codeload.github.com/angeluriot/Maze_solver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247922637,"owners_count":21018835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css","html","javascript","maze-generator","pathfinding"],"created_at":"2024-11-06T12:50:14.683Z","updated_at":"2025-04-08T20:30:40.439Z","avatar_url":"https://github.com/angeluriot.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# 🗺️ Maze solver\n\n![Release](https://img.shields.io/badge/Release-v4.0-blueviolet)\n![Language](https://img.shields.io/badge/Language-JavaScript-ffcc14)\n![Size](https://img.shields.io/badge/Size-346Ko-f12222)\n![Open Source](https://badges.frapsoft.com/os/v2/open-source.svg?v=103)\n\n\u003cbr/\u003e\n\nThis 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.\n\nThe web page is online at the address : **[angeluriot.com/maze_solver](https://angeluriot.com/maze_solver/)**.\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/iSW6t5e.png\" width=\"700\"\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n# 📋 Summary\n\n* **[📋 Summary](#-summary)**\n* **[✨ Features](#-features)**\n* **[🧪 Tests](#-tests)**\n\t* [🌀 Maze generation algorithms](#-maze-generation-algorithms)\n\t* [➡️ Pathfinding algorithms](#%EF%B8%8F-pathfinding-algorithms)\n* **[🙏 Credits](#-credits)**\n\n\u003cbr/\u003e\n\n# ✨ Features\n\n* You can choose the pathfinding algorithm of the maze solver :\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/D09nORf.png\" width=\"250\"\u003e\n\u003c/p\u003e\n\n* You can move the start and the finish :\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/g40S4LH.png\" width=\"500\"\u003e\n\u003c/p\u003e\n\n* You can also add and remove walls on the grid :\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/q7ZHJY5.png\" width=\"500\"\u003e\n\u003c/p\u003e\n\n* But the program is also able to generate a maze and you can choose the algorithm :\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/GPM7rNP.png\" width=\"250\"\u003e\n\u003c/p\u003e\n\n* The `Clear` button allows you to clear the grid and the `Start` button runs the pathfinding algorithm\n\n\u003cbr/\u003e\n\n# 🧪 Tests\n\n## 🌀 Maze generation algorithms\n\n* **Randomized Depth-First :**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/QOOM5Fc.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/bprV2tG.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Kruskal's Algorithm :**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/c3n5hgD.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/56vkvMf.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Prim's Algorithm :**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/zSNwWtw.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/JhGrzpK.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Wilson's Algorithm** *(unbiased)* **:**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/WofYqen.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/Wz3ovhz.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Aldous-Broder Algorithm** *(unbiased)* **:**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/Haur1ls.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/GPJqEE5.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Recursive Division :**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/mUXuKQ7.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/cc08aQT.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n## ➡️ Pathfinding algorithms\n\n* **Breadth-First** *(Slow but gives the shortest path)* **:**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/Sb6UDvx.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/V0aXTsQ.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Bidirectional Breadth-First** *(A little less slow and gives the shortest path)* **:**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/gSX6FH7.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/eK4Ddj9.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Greedy Best-First** *(Very fast but does not always give the shortest path)* **:**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/nXbSHOQ.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/yv3DlFy.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **Dijkstra** *(Slow but gives the shortest path)* **:**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/Sb6UDvx.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/V0aXTsQ.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n* **A\\*** *(Fast and gives the shortest path)* **:**\n\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://i.imgur.com/7sII5LX.png\" width=\"45%\"\u003e\n\t\u003cspan\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003c/span\u003e\n\t\u003cimg src=\"https://i.imgur.com/IChJALl.png\" width=\"45%\"\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\n# 🙏 Credits\n\n* [**Angel Uriot**](https://github.com/angeluriot) : Creator of the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangeluriot%2FMaze_solver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fangeluriot%2FMaze_solver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fangeluriot%2FMaze_solver/lists"}