class Board implements Serializable {

	public void setUpProblem(String[] diagram, StoneColor colorToPlay) {
		assert diagram.length == coords.getWidth();
		clear();
		for (int r = 0; r < coords.getWidth(); r++) {
			assert diagram[r].length() == coords.getWidth();
			for (int c = 0; c < coords.getWidth(); c++) {
				final StoneColor color = StoneColor.forChar(diagram[r].charAt(c));
				if (color != null) {
					placeInitialStone(color, coords.at(r, c));
				} else if (NonStoneColor.forChar(diagram[r].charAt(c)) != VACANT) {
					throw new IllegalArgumentException();
				}
			}
		}
		this.colorToPlay = colorToPlay;
	}

	public  Board(int width);

}