@Override public final String toString() {
		final StringBuilder fen = new StringBuilder();
		
		for (int row = rows; row >= 1; row--) {
			int empty = 0;
			
			for (int col = 1; col <= cols; col++) {
				final P piece = pieces.get(new Position(col, row));
				if (piece == null) {
					empty++;
					continue;
				}
				
				if (empty > 0) {
					fen.append(empty);
					empty = 0;
				}
				
				fen.append(piece.toString());
			}
			
			if (empty > 0) {
				fen.append(empty);
			}
			
			if (row > 1) {
				fen.append('/');
			}
		}
		
		return fen.toString();
	}