package com.lunivore.gameoflife.view.string;
import com.lunivore.gameoflife.domain.GameObserver;
import com.lunivore.gameoflife.domain.Grid;
public class StringRenderer implements GameObserver {
private static final String NL = System.getProperty("line.separator");
private Grid grid = Grid.NULL;
public String asString() {
StringBuilder builder = new StringBuilder();
for (int row = 0; row < grid.getHeight(); row++) {
for (int column = 0; column < grid.getWidth(); column++) {
builder.append(grid.hasLife(column, row) ? "X" : ".");
}
if (row < grid.getHeight() -1) { builder.append(NL); }
}
return builder.toString();
}
public void gridChanged(Grid grid) {
this.grid = grid;
}
}