40 lines
1.0 KiB
Java
40 lines
1.0 KiB
Java
package ch.fritteli.maze.generator.renderer.text;
|
|
|
|
import ch.fritteli.maze.generator.model.Maze;
|
|
import ch.fritteli.maze.generator.renderer.Renderer;
|
|
import lombok.NonNull;
|
|
|
|
public class TextRenderer implements Renderer<String> {
|
|
private boolean renderSolution;
|
|
|
|
private TextRenderer() {
|
|
this.renderSolution = false;
|
|
}
|
|
|
|
@NonNull
|
|
public static TextRenderer newInstance() {
|
|
return new TextRenderer();
|
|
}
|
|
|
|
@NonNull
|
|
public TextRenderer setRenderSolution(final boolean renderSolution) {
|
|
this.renderSolution = renderSolution;
|
|
return this;
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
public String render(@NonNull 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();
|
|
}
|
|
|
|
}
|