fen property
String
get
fen
Board part of the Forsyth-Edwards-Notation.
Implementation
String get fen {
final buffer = StringBuffer();
int empty = 0;
for (int rank = 7; rank >= 0; rank--) {
for (int file = 0; file < 8; file++) {
final square = Square(file + rank * 8);
final piece = pieceAt(square);
if (piece == null) {
empty++;
} else {
if (empty > 0) {
buffer.write(empty.toString());
empty = 0;
}
buffer.write(piece.fenChar);
}
if (file == 7) {
if (empty > 0) {
buffer.write(empty.toString());
empty = 0;
}
if (rank != 0) buffer.write('/');
}
}
}
return buffer.toString();
}