DimonSmart.MazeGenerator
1.24817.745
Prefix Reserved
dotnet add package DimonSmart.MazeGenerator --version 1.24817.745
NuGet\Install-Package DimonSmart.MazeGenerator -Version 1.24817.745
<PackageReference Include="DimonSmart.MazeGenerator" Version="1.24817.745" />
paket add DimonSmart.MazeGenerator --version 1.24817.745
#r "nuget: DimonSmart.MazeGenerator, 1.24817.745"
// Install DimonSmart.MazeGenerator as a Cake Addin #addin nuget:?package=DimonSmart.MazeGenerator&version=1.24817.745 // Install DimonSmart.MazeGenerator as a Cake Tool #tool nuget:?package=DimonSmart.MazeGenerator&version=1.24817.745
MazeGenerator
MazeGenerator is a C# library designed to create complex mazes programmatically. This project also includes a console application demo that showcases how mazes are generated and visualized dynamically.
Features
- Dynamic Maze Generation: Generate mazes with customizable dimensions and complexity.
- Visualization: Console application for visualizing maze generation and pathfinding processes.
- Extensible Architecture: Easily extendable to integrate different types of maze algorithms and visualization methods.
- Pathfinding Support: Includes pathfinding capabilities to find routes through the mazes.
Getting Started
Prerequisites
- .NET Core SDK (version specified or latest)
Installation
Clone the repository and navigate to the project directory:
git clone https://github.com/DimonSmart/MazeGenerator.git
cd MazeGenerator
Running the Demo
To see the MazeGenerator in action:
- Open the solution in Visual Studio or any compatible IDE.
- Set MazeGeneratorConsoleDemo as the startup project.
- Build and run the application to visualize the maze generation and pathfinding.
Key Components
Classes and Interfaces
IMaze
: Interface defining the basic structure and functionality of a maze.Maze
: Represents the maze structure with methods for wall creation and query.Cell
: Basic unit in a maze implementing the ICell interface.MazeBuilder<T>
: Generic builder class for constructing mazes with specific characteristics and algorithms.MazePathFinder
: Class providing pathfinding functionality within the maze using wave propagation.IMazePlotter
: Interface for plotting elements like walls and passages within the maze, synchronously or asynchronously.
Usage
Add a reference to the MazeGenerator project in your application. Utilize the classes to generate and manipulate mazes:
var maze = new Maze<Cell>(31, 21);
var mazePlotter = new MazeConsolePlotter();
new MazeBuilder(maze, new MazeBuildOptions(0.50, 0.0)).Build(mazePlotter);
var wave = new MazeWaveGenerator(maze, mazePlotter).GenerateWave(1, 1, 29, 19);
var pathBuilder = new MazePathBuilder(wave, mazePlotter);
pathBuilder.BuildPath();
Contributions
Contributions are welcome! Please fork the repository and submit pull requests with your enhancements.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.24817.745 | 172 | 8/17/2024 |
1.24812.924 | 127 | 8/12/2024 |
1.24808.2114 | 123 | 8/8/2024 |
1.24807.2038 | 96 | 8/7/2024 |
1.24807.1946 | 95 | 8/7/2024 |
1.24806.2143 | 94 | 8/6/2024 |
1.24806.2056 | 90 | 8/6/2024 |
1.24804.1641 | 70 | 8/4/2024 |
1.24801.1815 | 91 | 8/1/2024 |
1.24801.1531 | 85 | 8/1/2024 |
1.24801.1520 | 85 | 8/1/2024 |
1.24731.1325 | 80 | 7/31/2024 |
1.24731.1030 | 82 | 7/31/2024 |
1.24731.1007 | 82 | 7/31/2024 |
1.24731.939 | 70 | 7/31/2024 |
1.24731.929 | 70 | 7/31/2024 |