Sau khi đọc một loạt mã nguồn mở, tôi phát hiện ra rằng hầu hết trong số họ đang dựa vào Chesspresso , một thư viện Java Chess vững chắc có thể xử lý xác thực di chuyển, trình phân tích PGN (những gì tôi đang tìm kiếm), kết xuất bàn cờ, v.v.
Các mã được tài liệu tốt và dễ hiểu. Tôi mất khoảng 30 phút để đọc mã và bắt đầu thử nghiệm. Khá hài lòng với thư viện này.
Bạn có thể tải xuống mã nguồn từ sourceforge: Mã nguồn Chesspresso
Mã mẫu: (Đây là một đoạn từ lớp Trò chơi, tôi chỉ cần thêm chi tiết cho phần tiêu đề và tôi sẽ sẵn sàng để đổ từng trò chơi pgn vào cơ sở dữ liệu của mình).
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");
}
}