Giải thích
EPD là viết tắt của Extended Position Description. Một dòng EPD bắt đầu bằng bốn trường mô tả các quân, bên đến lượt, , tức cho biết mỗi bên còn giữ khả năng thực hiện nước đặc biệt liên quan đến vua và xe hay không, cùng . Sau đó dòng có thể chứa các thao tác EPD để gắn chỉ dẫn hoặc thông tin bổ sung với thế cờ đó.
Mỗi thao tác chứa một opcode, tức tên ngắn nhận diện ý nghĩa, theo sau là không hoặc nhiều operand, tức các giá trị của thao tác. Nó luôn kết thúc bằng dấu chấm phẩy. Trong id "test-001";, id là opcode và chuỗi trong dấu ngoặc kép là operand. Nhiều thao tác được ngăn cách bằng một dấu cách.
Các opcode chuẩn hóa bao quát những việc như nhận diện thế cờ, đề xuất nước tốt nhất, đánh dấu nước nên tránh, lưu một biến dự đoán hoặc thêm bình luận. Phần mềm không nhận ra một opcode nên bỏ qua thao tác đó thay vì từ chối toàn bộ dòng. Khả năng mở rộng này cho phép cùng một mô tả thế cờ cơ bản phục vụ bộ kiểm thử, phân tích và giao tiếp giữa các chương trình.
Cách dùng và ngữ cảnh
EPD chủ yếu được dùng cho bộ sưu tập thế cờ, kiểm thử , tức các chương trình phân tích thế cờ, và những tác vụ cần dữ liệu có cấu trúc bên cạnh trạng thái bàn cờ cho từng thế.
Những nhầm lẫn thường gặp
Thao tác và trường thế cờ
Bốn trường đầu mô tả trạng thái cần thiết để chơi tiếp từ thế cờ. Các thao tác phía sau thêm nhãn, đáp án hoặc chỉ dẫn.
Opcode và operand
opcode cho biết loại dữ liệu theo sau. operand cung cấp giá trị cụ thể của dữ liệu đó.
Nguồn
- 1.Standard: Portable Game Notation Specification and Implementation Guide, Steven J. Edwards / ChessGML
- 2.Core, python-chess 1.11.2 documentation
