public IActionResult Index(int size, string algo, MazeColor color) { int mazeSize = 15; if (size > 0) { mazeSize = size; } IMazeAlgorithm algorithm = new RecursiveBacktracker(); if (!string.IsNullOrEmpty(algo)) { Assembly assembly = Assembly.GetAssembly(typeof(RecursiveBacktracker)); Type algoType = assembly.GetType($"Algorithms.{algo}", false, true); if (algoType != null) { algorithm = Activator.CreateInstance(algoType) as IMazeAlgorithm; } } Bitmap mazeImage = Generate(mazeSize, algorithm, color); byte[] byteArray = ConvertToByteArray(mazeImage); return(File(byteArray, "image/png")); }
public IActionResult Index(int size, string algo, MazeColor color) { // return Content($"{size}, {algo}, {color}"); int mazeSize = GetSize(size); IMazeAlgorithm algorithm = GetAlgorithm(algo); Bitmap mazeImage = Generate(mazeSize, algorithm, color); byte[] byteArray = ConvertToByteArray(mazeImage); return(File(byteArray, "image/png")); }
public Bitmap Generate(int mazeSize, IMazeAlgorithm algorithm, MazeColor color) { IMazeGenerator generator = new MazeGenerator( new ColorGrid(mazeSize, mazeSize, color), algorithm); generator.GenerateMaze(); return(generator.GetGraphicalMaze(true)); }
private Bitmap Generate(int mazeSize, IMazeAlgorithm algorithm, MazeColor color) { IMazeGenerator generator = new ConsoleLoggingDecorator( new MazeGenerator( new ColorGrid(mazeSize, mazeSize, color), algorithm)); generator.GenerateMaze(); return(generator.GetGraphicalMaze(true)); }
public Bitmap Generate(int mazeSize, IMazeAlgorithm algorithm, MazeColor color) { IMazeGenerator generator = new MazeGenerator( new ColorGrid(mazeSize, mazeSize, color), algorithm); _logger.LogDebug($"{DateTime.Now:G} - Starting maze generation"); generator.GenerateMaze(); _logger.LogDebug($"{DateTime.Now:G} - Ending maze generation"); _logger.LogDebug($"{DateTime.Now:G} - Starting image generation"); Bitmap maze = generator.GetGraphicalMaze(true); _logger.LogDebug($"{DateTime.Now:G} - Ending image generation"); return(maze); }
public ColorGrid(int rows, int columns, MazeColor color = MazeColor.Purple) : base(rows, columns) { includeBackgrounds = true; this.color = color; }