{"id":16216183,"url":"https://github.com/cheina97/gomaze","last_synced_at":"2025-06-17T19:39:09.813Z","repository":{"id":229504511,"uuid":"776907513","full_name":"cheina97/GoMaze","owner":"cheina97","description":"GoMaze is a simple maze generator and solver written in Go.","archived":false,"fork":false,"pushed_at":"2024-03-24T19:21:29.000Z","size":539,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T22:43:08.068Z","etag":null,"topics":["ebitengine","graph","graphviz","maze","shortest-path"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cheina97.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}},"created_at":"2024-03-24T19:15:01.000Z","updated_at":"2024-12-13T12:46:03.000Z","dependencies_parsed_at":"2024-03-24T20:27:05.894Z","dependency_job_id":"2f949098-f928-481f-8535-b4e2835de57b","html_url":"https://github.com/cheina97/GoMaze","commit_stats":null,"previous_names":["cheina97/gomaze"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cheina97/GoMaze","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheina97%2FGoMaze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheina97%2FGoMaze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheina97%2FGoMaze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheina97%2FGoMaze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cheina97","download_url":"https://codeload.github.com/cheina97/GoMaze/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cheina97%2FGoMaze/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260427398,"owners_count":23007503,"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":["ebitengine","graph","graphviz","maze","shortest-path"],"created_at":"2024-10-10T11:18:41.047Z","updated_at":"2025-06-17T19:39:04.793Z","avatar_url":"https://github.com/cheina97.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoMaze\n\n*GoMaze* is a simple maze generator and solver written in *Go*. It randomly generate the maze and uses *Dijkstra algorithm* to find the minimum path between 2 points.\n\nThe library used to render the maze and manage inputs is [ebitengine](https://ebitengine.org/), a simple 2D game engine written in Go.\nThe minimum path is calculated using the [graph](https://pkg.go.dev/github.com/dominikbraun/graph#readme-getting-started) library.\n\n![](./doc/example.gif)\n\n# How to use\n\n## How to run\n\n```bash\ngo run cmd/main.go \n```\n\n```bash\nFlags:\n-h int\n    height of the maze (cells number) (default 20)\n-w int\n    width of the maze (cells number) (default 20) \n```\n\n## How to play\n\n- *Click* on the maze with the *left mouse button* to set the *start* and the *ending* point. \n- Press *R* on the keyboard to *generate* a new maze.\n\n# How it works\n\nTo find the minimum path between 2 points, the program uses the *Dijkstra algorithm*. Every walkable cell of the matrix (representing the maze), have been added to a graph. The weight of the edges is the distance between 2 cells, which is always 1. The algorithm will find the shortest path between the 2 points by exploring the graph.\n\nThis is an example of the generated graph:\n\n![](./doc/graph.png)\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheina97%2Fgomaze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcheina97%2Fgomaze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcheina97%2Fgomaze/lists"}