This project visualizes different algorithms adapted to creating and solving mazes.
Tip
Check out the app at amazeing.app/.
- Implements 21+ algorithms for maze creation and traversal.
- Extensive control over algorithm execution (autoplay, iteration history, etc.).
- Paintable grid to create or alter your existing maze.
- Easy import/export feature at any stage of the algorithm execution.
- Statistics tracking during the algorithm execution.
- Learn page with general information and additional resources.
- Available as a Progressive Web App (PWA).
This has been a passion project of mine which I did not create for profit and it will always remain open source and ad-free.
If you enjoy this project and want to show your appreciation, you can:
- Support the project: Ko-fi ☕
- Spread the word: Share this project with others!
Contributions are welcome! ❤️
To ensure a smooth collaboration, please follow these guidelines:
- Create an Issue First: If you're planning to work on a feature or bug fix, please create an issue beforehand to discuss it. This helps avoid duplicate efforts and ensures your contribution aligns with the project's direction. Pull Requests without prior discussion have a high chance of not being accepted. (Sorry!)
- Style Guides:
- Respect the Angular style guide.
- Adhere to conventional commits.
- Code Comments: Only comment when necessary, but always for functions.
There are quite a few TODOs throughout this project that could be good starting points. Feel free to browse existing issues or create a new one to propose an idea.
Note: This project is based on a previous Vue.js project of mine, which was later converted to Angular. You can check out the original Game of Life Vue project here.
Run ng serve
for development. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
This project uses Playwright for e2e tests and ensures that the most common use-cases are covered and don't produce errors while executing the algorithms.
More tests could be introduced but there is no way to automatically test for the correctness
of the algorithms themselves.
Run locally: npm run test:pw
This project is licensed under the MIT License.