{"id":19059192,"url":"https://github.com/ramezze/mazesolver","last_synced_at":"2025-04-24T06:14:13.849Z","repository":{"id":164703113,"uuid":"638625052","full_name":"RamezzE/MazeSolver","owner":"RamezzE","description":"Maze generation, solving \u0026 finding shortest paths algorithms with backtracking, written in C++ and SFML.","archived":false,"fork":false,"pushed_at":"2024-08-07T15:10:42.000Z","size":838,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-24T06:14:07.759Z","etag":null,"topics":["backtracking","backtracking-algorithm","dfs","dfs-algorithm","maze","maze-algorithms","maze-generator","maze-solver","pathfinding","shortest-path","shortest-path-algorithm","shortest-paths"],"latest_commit_sha":null,"homepage":"","language":"C++","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/RamezzE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-05-09T18:46:26.000Z","updated_at":"2024-12-09T06:27:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"20c1f6ca-fe98-48b7-adf1-76c75618a777","html_url":"https://github.com/RamezzE/MazeSolver","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamezzE%2FMazeSolver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamezzE%2FMazeSolver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamezzE%2FMazeSolver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RamezzE%2FMazeSolver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RamezzE","download_url":"https://codeload.github.com/RamezzE/MazeSolver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250573357,"owners_count":21452352,"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":["backtracking","backtracking-algorithm","dfs","dfs-algorithm","maze","maze-algorithms","maze-generator","maze-solver","pathfinding","shortest-path","shortest-path-algorithm","shortest-paths"],"created_at":"2024-11-09T00:06:57.722Z","updated_at":"2025-04-24T06:14:13.843Z","avatar_url":"https://github.com/RamezzE.png","language":"C++","readme":"# Maze Solver\n\nMaze generator \u0026 solver using backtracking\n\nWritten in C++ and SFML\n\n![Maze Solver Preview (Custom) (2)](https://github.com/RamezzE/MazeSolver/assets/117018553/d085fe87-25e9-4ca6-a95d-1dbff72bda11)\n\n## Table of Contents\n\n- [Features](#features)\n- [Building](#building)\n- [License](#license)\n\n## Features\n\n1. [Maze Generation](#maze-generation)\n2. [Maze Solving](#solving-the-maze)\n3. [Finding all shortest paths](#shortest-paths)\n4. [Resizing](#resize-the-grid)\n5. [Adjusting simulation speed \u0026 wall thickness](#adjust-speed-and-wall-thickness)\n6. [Changing start and end positions](#change-start-and-end)\n7. [Manually editing the maze](#editing-the-maze)\n8. [Exporting as an Image](#export-as-png)\n\n#### Maze Generation\nRandomly generate a maze with initially only 1 solution as many times as you want.\n\n![Generate Maze](https://github.com/RamezzE/MazeSolver/assets/117018553/70736759-a81c-477e-91d0-2b75ae6226f6)\n\n#### Solving the Maze\n\nSolve the maze, backtracking at the first solution found.\n\n![Solve Maze](https://github.com/RamezzE/MazeSolver/assets/117018553/20e7a1a7-7b2b-422a-a341-fda032ba3899)\n\n#### Shortest Paths\n\nFind all the shortest paths in the maze and view them all with side arrows.\n\n![Find Shortest Paths](https://github.com/RamezzE/MazeSolver/assets/117018553/a47ff963-a086-4b5d-b6a3-a6c40b479f82)\n\n#### Resize the Grid\n\nResize the grid and regenerate the maze.\n\n![Resize Grid](https://github.com/RamezzE/MazeSolver/assets/117018553/862d611b-1f15-41ed-a588-4e21aa3b13e7)\n\n#### Adjust Speed and Wall Thickness\n\nPause (speed to 0), slow down or speed up the simulation speed at any time.\nIncrease or decrease the wall thickness.\n\n![Change Speed and Wall Thickness](https://github.com/RamezzE/MazeSolver/assets/117018553/184d2d6c-7ddc-4a03-b3a7-991b0c93e10e)\n\n#### Change Start and End\nChange start \u0026 end positions for the maze.\n\n![Change Start and End](https://github.com/RamezzE/MazeSolver/assets/117018553/79a24c1b-83c1-46c4-9edf-a364f5026fd2)\n\n#### Editing the maze\n\nIn edit mode:\n\nLeft mouse click toggles the visibility of the top wall of any cell.\n\nRight mouse click does the same for the right wall\n\n![Edit Maze](https://github.com/RamezzE/MazeSolver/assets/117018553/ba40b93f-bdd6-4b58-b91e-9309bff536b4)\n\n#### Export as PNG\nExport the maze as an image in PNG format.\n\n![Mon Jun 19 190400 2023](https://github.com/RamezzE/MazeSolver/assets/117018553/a701b76e-c15c-40ef-99f9-9f6db6091461)\n![Mon Jun 19 190427 2023](https://github.com/RamezzE/MazeSolver/assets/117018553/d02d0c28-9f72-4678-96fe-52060e51361f)\n![x](https://github.com/RamezzE/MazeSolver/assets/117018553/965935ee-efa2-4729-9d4c-475bf89ab6f1)\n\n## Building\n## Prerequisites\n- g++ 4.8 or above\n- GNU Make\n- SFML 2.5.1 or above [[www.sfml-dev.org](https://www.sfml-dev.org/download/sfml/2.5.1/)]\n\n### Linux\n- You can run these commands on linux to install g++, Make and SFML\n\n```\n$ sudo apt-get install g++\n$ sudo apt-get install make\n$ sudo apt-get install libsfml-dev\n```\n\n### Windows\n- Install the proper SFML version from the website (MinGW version for GNU Make build or Visual C++ for MS Build)\n- Unzip the SFML downloaded folder ( You can install 7zip to be able to unzip )\n\n#### GNU Make\n- Install GNU Make by installing [chocolatey](https://chocolatey.org/install#individual) package manager  and running this command from an elevated Command Prompt:\n```\n$ choco install make\n```\n- Install MinGW g++ [MinGW 32-bit](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/threads-posix/dwarf/i686-7.3.0-release-posix-dwarf-rt_v5-rev0.7z/download) or [MinGW 64-bit](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/7.3.0/threads-posix/seh/x86_64-7.3.0-release-posix-seh-rt_v5-rev0.7z/download) (The SFML version and the MinGW version have to match)\n\n- After unzipping the MinGW file, add your path to mingw32/bin or mingw64/bin to PATH in the system environmental variables\n\n- Edit the ```SFML_DIR``` in the Makefile to add your correct SFML folder or copy the folder to the project directory and name the folder 'SFML'\n\n#### MS Build\n- Visual Studio 15 or above\n- VC++ 15 or above\n\n\n## Building\n\n### GNU Make (Method used)\n\n- Download source code\n\n- Open your terminal in your project directory where the Makefile exists\n\n- Run Make in your terminal:\n\n```\n$ make\n```\n\n- List of make commands you can use\n```\n# Build and run in release mode\n$ make\n\n# Build and run in debug mode\n$ make debug \u0026\u0026 make run\n\n# Rebuild in release or debug mode\n$ make rebuild\n\n# or \n$ make rebuild-debug\n\n# Clean the files\n$ make clean\n\n# Run the latest compiled build\n$ make run\n```\n\n### MS Build\n\n1. Add the `\u003c/path/to/sfml_folder/\u003e/include` to your **additional C++ include directories**.\n2. Add `\u003c/path/to/sfml_folder/\u003e/lib` to your **additional library directories**.\n3. Add the SFML libraries used to your **additional dependencies**\n\n   eg:\n   ``\n   sfml-graphics.lib;sfml-system.lib;sfml-window.lib;\n   ``\n\n4. Add the dlls in your SFML path/bin along with your executable\n  \n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framezze%2Fmazesolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framezze%2Fmazesolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framezze%2Fmazesolver/lists"}