package com.christophdietze.jack.shared.pgn;
import com.christophdietze.jack.shared.board.Piece;
import com.christophdietze.jack.shared.board.Position;
/**
* @see ReducedFenParser
*/
public class ReducedFenWriter {
public ReducedFenWriter() {
}
public String write(Position position) {
StringBuilder sb = new StringBuilder();
writePosition(position, sb);
return sb.toString();
}
private void writePosition(Position position, StringBuilder sb) {
int skipCount = 0;
for (int index = 0; index < 64; ++index) {
Piece square = position.getPiece(index);
if (square.isEmpty()) {
skipCount++;
continue;
}
if (skipCount > 0) {
sb.append(skipCount);
skipCount = 0;
}
char symbol = square.getPieceType().getSymbol();
if (!square.isWhite()) {
symbol = Character.toLowerCase(symbol);
}
sb.append(symbol);
}
}
}