Giới thiệu
Wukong Xiangqi là một engine cờ tướng (Xiangqi) tối giản được viết hoàn toàn bằng ngôn ngữ C thuần túy bởi tác giả Maksim Korzh. Dự án hỗ trợ giao thức UCCI (Universal Chinese Chess Interface), cho phép kết nối dễ dàng với các giao diện (GUI) cờ tướng phổ biến hiện nay.
Kiến trúc bàn cờ mẫu (Board Representation)
Wukong sử dụng mảng một chiều dựa trên hệ thống tọa độ mở rộng 11x14 để biểu diễn bàn cờ. Cách tiếp cận này giúp kiểm tra quân cờ đi ra ngoài biên một cách tự nhiên nhờ các ô đệm (Off-board).
Dưới đây là cách định nghĩa các quân cờ bằng mã số nguyên trong mã nguồn mẫu:
// Định nghĩa hằng số cho các quân cờ
enum {
COLOR_EMPTY,
RED_PAWN, RED_ADVISOR, RED_BISHOP, RED_KNIGHT, RED_ROOK, RED_CANNON, RED_KING,
BLACK_PAWN, BLACK_ADVISOR, BLACK_BISHOP, BLACK_KNIGHT, BLACK_ROOK, BLACK_CANNON, BLACK_KING
};
Định hướng áp dụng Machine Learning (ML) tương lai
Cấu trúc tìm kiếm Alpha-Beta kết hợp với hàm đánh giá tĩnh hiện tại của Wukong dựa trên mô hình toán học tuyến tính tính điểm quân số và vị trí:
Từ nền tảng bàn cờ mẫu và logic sinh nước đi (Move Generation) có sẵn này, bạn có thể dễ dàng thay thế hoặc cải tiến bằng các kỹ thuật Machine Learning trong tương lai:
- Học máy giám sát (Supervised Learning): Sử dụng dữ liệu các biên bản ván đấu (PGN) của các kỳ thủ để huấn luyện một mạng thần kinh nhân tạo (Neural Network) thay thế cho hàm đánh giá tĩnh $f(s)$ truyền thống, giúp AI tự nhận biết thế trận tốt xấu một cách thông minh hơn.
- Học tăng cường (Reinforcement Learning): Áp dụng cơ chế tự chơi (Self-play) tương tự như kiến trúc AlphaZero để engine tự tích lũy kinh nghiệm, tối ưu hóa bảng vị trí và chiến thuật di chuyển quân mà không cần đến sự can thiệp thủ công từ con người.
Xem toàn bộ mã nguồn dự án tại: GitHub maksimKorzh/wukong-xiangqi
Nhận xét
Đăng nhận xét