Nachdem ich eine Reihe von Open Source-Code gelesen hatte, stellte ich fest, dass die meisten von ihnen auf Chesspresso setzen , einer soliden Java- Schachbibliothek, die die Validierung von Verschiebungen, den PGN-Parser (wonach ich gesucht habe), das Rendern von Schachbrettern usw. unterstützt.
Der Code ist gut dokumentiert und leicht zu verstehen. Ich brauchte ungefähr 30 Minuten, um den Code zu lesen und mit dem Testen zu beginnen. Ziemlich zufrieden mit dieser Bibliothek.
Sie können den Quellcode von sourceforge herunterladen: Chesspresso Source Code
Beispielcode: (Dies ist ein Fragment aus der Spielklasse. Ich muss nur weitere Details für den Header-Bereich hinzufügen und bin bereit, jedes PNG-Spiel in meine Datenbank zu kopieren.)
public String getHeaderString(int line)
{
if (line == 0) {
StringBuffer sb = new StringBuffer();
sb.append(getWhite());
if (getWhiteElo() != 0) sb.append(" [").append(getWhiteElo()).append("]");
sb.append(" - ").append(getBlack());
if (getBlackElo() != 0) sb.append(" [").append(getBlackElo()).append("]");
sb.append(" ").append(getResultStr()).append(" (").append(getNumOfMoves()).append(")");
return sb.toString();
} else if (line == 1) {
StringBuffer sb = new StringBuffer();
sb.append(getEvent()).append(", ").append(getSite()).append(", ").append(getDate());
sb.append(" [").append(getRound()).append("]");
return sb.toString();
} else if (line == 2) {
return getECO();
} else {
throw new RuntimeException("Only 3 header lines supported");
}
}