Ejemplo n.º 1
0
        static int RenderPredefinedMaze(FileStream stream, string mazeKind, MazeGridSettings mazeGridSettings)
        {
            switch (mazeKind)
            {
            case "tree": new TreeLevelWriter().Write(stream, mazeGridSettings);
                break;

            case "grass": new GrassLevelWriter().Write(stream, mazeGridSettings);
                break;

            case "city": new CityLevelWriter().Write(stream, mazeGridSettings);
                break;

            case "town": new TownLevelWriter().Write(stream, mazeGridSettings);
                break;

            case "color": new ColorLevelWriter().Write(stream, mazeGridSettings);
                break;

            case "color-solve": new ColorSolvingLevelWriter().Write(stream, mazeGridSettings);
                break;

            default:
                PrintUsage("InvalidArgument", $"--kind {mazeKind}");
                return(InvalidArgumentCode);
            }

            return(0);
        }
Ejemplo n.º 2
0
        public void Write(Stream stream, MazeGridSettings mazeSettings)
        {
            RenderGrid renderGrid = new MazeGridFactory(mazeSettings).CreateRenderGrid();
            var        factory    = new TreeComponentFactory();
            var        renderer   = new NormalGameLevelRenderer(
                factory.CreateBackgroundRenderers(),
                factory.CreateGroundRenderers(),
                factory.CreateWallRenderers(),
                factory.CreateSettings());

            using (renderer)
            {
                renderer.Render(renderGrid, stream);
            }
        }