All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ch.fritteli.maze.generator.renderer.text.TextRenderer Maven / Gradle / Ivy

package ch.fritteli.maze.generator.renderer.text;

import ch.fritteli.maze.generator.model.Maze;
import ch.fritteli.maze.generator.renderer.Renderer;
import org.jetbrains.annotations.NotNull;

public class TextRenderer implements Renderer {
    private boolean renderSolution;

    private TextRenderer() {
        this.renderSolution = false;
    }

    @NotNull
    public static TextRenderer newInstance() {
        return new TextRenderer();
    }

    @NotNull
    public TextRenderer setRenderSolution(final boolean renderSolution) {
        this.renderSolution = renderSolution;
        return this;
    }

    @NotNull
    @Override
    public String render(@NotNull final Maze maze) {
        if (maze.getWidth() == 0 || maze.getHeight() == 0) {
            return "";
        }
        final Generator generator = new Generator(maze, this.renderSolution);
        final StringBuilder sb = new StringBuilder();
        while (generator.hasNext()) {
            sb.append(generator.next());
        }
        return sb.toString();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy