Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refine GraphMaze to be the main class, with other classes a specialization #125

Open
sraaphorst opened this issue Jul 2, 2018 · 1 comment
Labels
graphmaze Mazes based on Boost.Graph optional Optional feature: may not implement refactor Refactoring of the code

Comments

@sraaphorst
Copy link
Owner

In order to allow for any types of mazes, the most flexible operation would be to have GraphMaze be the base structure (based on Boost.Graph), with vertices and edges indicating adjacency / neighbours. (A maze in its most general form should be cells and neighbours, with a start and end position.)

Then we can move the majority of algorithms from Maze to GraphMaze, with some exceptions, which we'll leave on Maze and ThickMaze, that will be convenience wrappers around certain instances of GraphMaze.

This is a major task, and we will see if I decide to do it or not.

@sraaphorst sraaphorst added optional Optional feature: may not implement refactor Refactoring of the code graphmaze Mazes based on Boost.Graph labels Jul 2, 2018
@sraaphorst
Copy link
Owner Author

We will have to change some fundamental definitions. For example:

Let N be the maximum number of walls a cell can have.

A cell is a dead end if it has N-1 walls.

A cell is a juncture if it has N-3 walls or fewer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
graphmaze Mazes based on Boost.Graph optional Optional feature: may not implement refactor Refactoring of the code
Projects
None yet
Development

No branches or pull requests

1 participant