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));
        }
Exemple #4
0
        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;
 }