Exemple #1
4
        private async Task GenerateMaze()
        {
            BusyGeneratingMaze2.OnNext(false);
            await Task.Run(() =>
            {
                var builder = new MazeBuilder()
                              .SetMazeAlgorithm(this.SelectedMazeGenAlgorithm)
                              .SetMazeDimensions(MazeWidth, MazeHeight)
                              .RecordMazeTransformationSteps();
                this._Maze = builder.Build();
                var image  = MazeImageCreator.GetMazeImage(_Maze, 10);

                this._MazeImage = ConvertToAvaloniaImage(image);
                // this.StepsToDraw = builder.GetMazeTransformationSteps();

                Dispatcher.UIThread.Post(InvalidateVisual, DispatcherPriority.Background);

                BusyGeneratingMaze2.OnNext(true);
            }).ConfigureAwait(true);
        }
Exemple #2
0
        private static async Task CreateMazeImageAndGif(IMazeGenAlgorithm i)
        {
            MazeBuilder mazeBuilder = new MazeBuilder();
            TileMapMaze drawMaze    = new TileMapMaze(60, 60);

            drawMaze.OverrideAllMazeFields();
            var maze = mazeBuilder
                       .SetMazeAlgorithm(i)
                       .SetDrawCallback(m =>
            {
                if (i is RecursiveDivision)
                {
                    //drawMaze.TransformMaze(m);
                    //MazeImageCreator.CreateMazeImage(drawMaze, i.GetName(), 10, "./");
                }
            })
                       .RecordMazeTransformationSteps(true)
                       .SetMazeDimensions(60, 60)
                       .Build();

            await MazeImageCreator.CreateMazeAnimationGifAsync(mazeBuilder.GetMazeTransformationSteps(), drawMaze, i.GetName(), 5).ConfigureAwait(false);

            MazeImageCreator.CreateMazeImage(maze, i.GetName(), 5, "./");

            Console.WriteLine($"Finished maze image and gif creation for algorithm={i.GetName()}.");
        }