Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prim's algorithm:
The algorithm starts at an initial cell and builds the maze by collecting all walls adjacent to the current passage cells. It then repeatedly selects a random wall from this list, and if the cell on the opposite side hasn't been visited, it removes the wall to create a new passage, adding the new cell’s adjacent walls to the list. This process continues until all cells are visited, resulting in a maze with a more organic, branched structure that tends to have many short corridors and less bias toward long, straight passages.
Kruskal's algorithm:
Each cell starts as its own set and walls between adjacent cells act as potential edges, which are then shuffled randomly. The algorithm checks each wall in turn, and if the cells on either side belong to different sets, it removes the wall and merges the sets. This continues until all cells are connected in a perfect maze with a unique path between any two points, after which start and end markers are placed and the maze is finalized with bordering walls.
┆Issue is synchronized with this Asana task by Unito