Báo cáo Nghiên cứu về Lịch sử Chơi Cờ Tướng (Xiangqi) Trên Máy Tính

Tổng hợp có hệ thống lịch sử phát triển engine cờ tướng từ thập niên 1980 đến năm 2026, bao gồm các engine tiêu biểu, giao thức và hệ sinh thái công cụ. Chương 2: Tích Hợp Engine Cờ Tướng và Hệ Sinh Thái Phần Mềm → Chương 7: Bảo Trì và Cập Nhật Engine…

☰ Mục lục

Chương 2: Tích Hợp Engine Cờ Tướng và Hệ Sinh Thái Phần Mềm

2.1 Thiết Kế và Ứng Dụng của API Engine

Thiết kế API của engine cờ tướng thường sử dụng định dạng giao tiếp nối tiếp theo giao thức UCCI. Các thiết kế API điển hình bao gồm:

Gọi đồng bộ: GUI gửi lệnh -> chờ phản hồi engine -> nhận kết quả. Phương pháp này đơn giản và trực tiếp, phù hợp với hầu hết các tình huống phân tích.

Gọi bất đồng bộ: GUI gửi lệnh và trả về ngay lập tức; engine thông báo cho GUI qua callback sau khi hoàn thành tính toán nền. Phương pháp này phù hợp với các tình huống yêu cầu phân tích dài hạn (như phân tích sâu, thăm dò thế cờ).

2.2 Tích Hợp Trình Biên Tập Kỳ Phổ và Engine

Các trình biên tập kỳ phổ hiện đại tích hợp sâu chức năng phân tích engine. Quy trình làm việc điển hình:

  1. Người dùng mở một kỳ phổ hoặc tùy chỉnh một thế cờ
  2. Người dùng yêu cầu engine phân tích thế cờ hiện tại
  3. Engine tìm kiếm trong nền, trả về nước đi tốt nhất và giá trị đánh giá
  4. Trình biên tập kỳ phổ hiển thị kết quả phân tích của engine (nước đi tốt nhất, các biến, xu hướng đánh giá, v.v.)
  5. Người dùng có thể khám phá các nhánh biến do engine đề xuất

2.3 Tổng Quan về Các Nền Tảng Phân Tích Trực Tuyến

Các nền tảng phân tích trực tuyến dựa trên engine cờ tướng bao gồm:

Engine phân tích web: Chạy Pikafish trực tiếp trong trình duyệt thông qua công nghệ WebAssembly (WASM). Người dùng có thể sử dụng engine hàng đầu để phân tích trong trình duyệt mà không cần tải xuống hoặc cài đặt bất kỳ phần mềm nào.

Nền tảng phân tích đám mây: Triển khai các engine như Pikafish trên máy chủ đám mây, cung cấp dịch vụ thông qua Web API. Người dùng kết nối với máy chủ đám mây qua trình duyệt hoặc ứng dụng để phân tích engine. Ưu điểm của mô hình này là người dùng có thể truy cập tài nguyên tính toán mạnh mẽ hơn.

Ứng dụng phân tích di động: Các ứng dụng phân tích cờ tướng chạy trên thiết bị iOS và Android. Ứng dụng di động thường sử dụng phiên bản engine biên dịch cho ARM, đạt được suy luận NNUE hiệu quả thông qua tập lệnh NEON.

Chương 3: Ảnh Hưởng của Engine Cờ Tướng trong Học Thuật

3.1 Thực Hành Dự Án Phát Triển Engine trong Các Khóa Học Đại Học

Một số trường đại học Trung Quốc đã đưa các dự án phát triển engine cờ tướng vào các khóa học khoa học máy tính:

Khóa học AI của Đại học Thanh Hoa: Bao gồm engine cờ tướng như một lựa chọn đồ án môn học. Các nhóm sinh viên hoàn thành một engine cờ tướng cơ bản trong học kỳ, từ biểu diễn thế cờ đến thuật toán tìm kiếm và hàm đánh giá.

Khóa học chơi game máy tính của Đại học Bắc Kinh: Tập trung vào lý thuyết và thực hành chơi game máy tính, với engine cờ tướng là một trong những dự án cốt lõi của khóa học. Sinh viên cần triển khai tìm kiếm Alpha-Beta, hàm đánh giá và giao thức UCCI.

Khóa học kỹ thuật phần mềm của Đại học Chiết Giang: Các nhóm sinh viên phát triển engine dựa trên giao thức UCCI và thi đấu vào cuối học kỳ. Khóa học nhấn mạnh các thực hành kỹ thuật phần mềm (kiểm soát phiên bản, đánh giá mã, kiểm thử, v.v.).

3.2 Trích Dẫn Học Thuật của Các Dự Án Mã Nguồn Mở Engine

Tình trạng trích dẫn của dự án Pikafish trong học thuật:

Lĩnh vực giáo dục khoa học máy tính: Pikafish được sử dụng như một case study giảng dạy, minh họa ứng dụng của các thực hành kỹ thuật phần mềm hiện đại trong các dự án AI.

Lĩnh vực nghiên cứu AI: Pikafish được trích dẫn trong các bài báo học thuật như một trường hợp ứng dụng của NNUE trong lĩnh vực cờ tướng.

Lĩnh vực nghiên cứu game: Dữ liệu so sánh giữa Pikafish và các engine thương mại cờ tướng truyền thống được sử dụng trong các bài báo học thuật nghiên cứu sự tiến hóa của sức mạnh chơi máy tính.

3.3 Giá Trị Học Thuật của Các Cuộc Thi Chơi Game Máy Tính

Những đóng góp của các cuộc thi chơi game máy tính đối với nghiên cứu học thuật về engine cờ tướng:

ICGA International Computer Games Championship: Cung cấp môi trường thi đấu chuẩn hóa, tạo ra dữ liệu thực nghiệm có thể so sánh cho nghiên cứu học thuật.

CCMC (Giải vô địch cờ máy tính Trung Quốc): Ghi lại quỹ đạo tiến hóa sức mạnh của engine cờ tướng qua các năm.

Cuộc thi chơi game máy tính dành cho sinh viên đại học: Một cuộc thi do Bộ Giáo dục tài trợ, thu hút đông đảo sinh viên đại học tham gia phát triển engine cờ tướng.

Chương 4: Khảo Cổ Mã Nguồn Engine Cờ Tướng

4.1 Phân Tích Cấu Trúc Mã Nguồn của ElephantEye (Mãnh Tượng Nhãn)

Là một trong những engine cờ tướng mã nguồn mở sớm nhất, cấu trúc mã nguồn của ElephantEye có giá trị học tập và nghiên cứu đáng kể.

Các mô-đun cốt lõi:

  1. Mô-đun biểu diễn thế cờ (position.h/position.cpp): quản lý và cập nhật trạng thái bàn cờ
  2. Mô-đun sinh nước đi (movegen.h/movegen.cpp): logic sinh nước đi cho tất cả quân cờ
  3. Mô-đun tìm kiếm (search.h/search.cpp): triển khai tìm kiếm Alpha-Beta
  4. Mô-đun đánh giá (evaluate.h/evaluate.cpp): triển khai hàm đánh giá
  5. Mô-đun bảng băm (hash.h/hash.cpp): triển khai băm Zobrist và bảng băm
  6. Mô-đun giao thức UCCI (ucci.h/ucci.cpp): triển khai giao thức UCCI

Phong cách mã nguồn: Phong cách mã nguồn của Hoàng Thần (Huang Chen) rõ ràng và súc tích, sử dụng tên biến và tên hàm có ý nghĩa. Nhiều chú thích làm cho nó phù hợp cho người đọc mới bắt đầu.

Mức độ mô-đun hóa: ElephantEye có mức độ mô-đun hóa tương đối cao, với các mô-đun cốt lõi giao tiếp thông qua các giao diện được xác định rõ ràng. Thiết kế này làm cho mã nguồn dễ hiểu và dễ sửa đổi.

4.2 Phân Tích Cấu Trúc Mã Nguồn của Pikafish

Là một engine được chuyển thể từ Stockfish, cấu trúc mã nguồn của Pikafish kế thừa chất lượng cao và thiết kế chuyên nghiệp của Stockfish.

Đặc điểm của các mô-đun cốt lõi:

  1. Thao tác Bitboard: sử dụng rộng rãi tính toán trước và thao tác bit để đạt hiệu suất cực cao
  2. Lập trình khuôn mẫu (Template metaprogramming): sử dụng kỹ thuật template C++ để suy luận và tối ưu hóa kiểu tại thời điểm biên dịch
  3. Hỗ trợ đa luồng: sử dụng luồng thư viện chuẩn C++ và các nguyên hàm đồng bộ
  4. Suy luận NNUE: các thao tác ma trận và lệnh SIMD được tối ưu hóa cao

Khác biệt so với Stockfish: Các sửa đổi mã nguồn của Pikafish để thích ứng với cờ tướng bao gồm:

  1. Kích thước bàn cờ thay đổi thành 10 hàng x 9 cột
  2. Loại quân cờ thay đổi thành 7 mỗi bên
  3. Thích ứng luật di chuyển (ăn qua của Pháo, mặt tướng đối diện, chân Tượng, chân Mã, v.v.)
  4. Thích ứng đặc trưng đầu vào NNUE (điều chỉnh tập đặc trưng HalfKP)

Chương 5: Ghi Chú Lịch Sử Bổ Sung về Engine Cờ Tướng

5.1 Tài Liệu Bổ Sung về Các Engine Đầu Tiên

Dưới đây là các tài liệu bổ sung về các engine đầu tiên:

Ngu Huấn Thuấn (Yu Xishun / 虞希舜), nhà phát triển của Tôn Túc (Zun Zu): Theo thông tin công khai hạn chế, Ngu Huấn Thuấn đã chuyển sang các lĩnh vực khác sau khi phát triển Tôn Túc. Một số nguồn tin cho biết ông làm việc tại Microsoft, nhưng thông tin chi tiết chưa được xác nhận. Mã nguồn của Tôn Túc / Tượng Kỳ Đại Sư 3 chưa bao giờ được công bố.

Triệu Minh Dương (Zhao Mingyang / 赵明阳), tác giả của Tượng Kỳ Kỵ Binh (Xiangqi Qibing): Tượng Kỳ Kỵ Binh của Triệu Minh Dương đã vô địch tại ICGA lần thứ 10 năm 2005. Hàm đánh giá truyền thống của Tượng Kỳ Kỵ Binh đã giữ một vị trí dẫn đầu nhất định trong số các engine cùng thời.

5.2 Các Engine Đã Bị Lãng Quên

Trong lịch sử lâu dài của engine cờ tướng, một số engine, mặc dù không đạt được kết quả thi đấu hàng đầu, nhưng vẫn có những đóng góp cho cộng đồng:

Sở Hán Kỳ Duyên (Chu Han Qi Yuan / 楚汉棋缘): Một phần mềm cờ tướng đầu tiên phổ biến trên nền tảng Windows, với giao diện người dùng tốt và chức năng engine cơ bản.

Tượng Kỳ Ma Pháp Sư / ElephantBoard (Tượng Kỳ Wizard): Một GUI do Hoàng Thần (Huang Chen) phát triển, có tích hợp engine ElephantEye. Tượng Kỳ Wizard phù hợp cho giảng dạy và giải trí thông thường, và là một trong những phần mềm cờ tướng thân thiện nhất trên nền tảng Windows.

Ảnh chụp màn hình giao diện Tượng Kỳ Wizard
Tượng Kỳ Wizard (ElephantBoard) — Giao diện đồ họa UCCI do Huang Chen phát triển, hỗ trợ tích hợp nhiều engine

5.3 Hiệu Chỉnh Niên Biểu Các Sự Kiện Engine

Trong quá trình biên soạn báo cáo này, một số mốc thời gian sự kiện được ghi nhận là có thể không chắc chắn và được đánh dấu như sau:

Niên biểu phiên bản của Tôn Túc (Zun Zu): Một số nguồn tin cho biết Tôn Túc vô địch ICGA năm 1989, nhưng các nguồn khác đề cập đến một phiên bản sớm hơn. Một lý do có thể là phiên bản không chính thức sớm nhất của Tôn Túc có thể đã tồn tại từ năm 1987-1988.

Ngày phát hành của Chess1 / Kỳ Ẩn (Qi Yin): Các nguồn khác nhau cho thấy ngày phát hành của Kỳ Ẩn (Chess1) dao động từ 1997 đến 1999. Xem xét rằng phiên bản Windows của nó yêu cầu hỗ trợ Windows 95, ngày phát hành có khả năng nhất là 1997-1998.

Mối quan hệ giữa Tượng Kỳ Kỵ Binh (Xiangqi Qibing) và Tượng Kỳ Tuyên Phong (Xiangqi Cyclone): Một số tài liệu cộng đồng đề cập rằng đã có trao đổi kỹ thuật giữa Triệu Minh Dương (tác giả của Tượng Kỳ Kỵ Binh) và Trần Siêu Dĩnh (Chen Chaoying, tác giả của Tượng Kỳ Tuyên Phong), nhưng tuyên bố này chưa được xác nhận bởi một trong hai bên.

Chương 6: Ảnh Hưởng Văn Hóa của Engine Cờ Tướng

6.1 Engine và Việc Xuất Bản Văn Học Cờ Tướng

Engine cờ tướng đã có tác động đáng kể đến việc xuất bản sách cờ tướng:

Văn học cờ tướng truyền thống (trước 2005): Chủ yếu dựa vào phân tích thủ công và phán đoán dựa trên kinh nghiệm của tác giả. Phân tích cờ có màu sắc cá nhân mạnh mẽ.

Văn học cờ tướng hiện đại (sau 2005): Phân tích engine đã trở thành một tính năng tiêu chuẩn của sách cờ. Các tác giả sử dụng engine để xác minh phân tích của họ và cung cấp hiển thị biến chính xác hơn.

Cơ sở dữ liệu kỳ phổ trực tuyến: Các cơ sở dữ liệu kỳ phổ trực tuyến dựa trên phân tích engine (như Tượng Kỳ Vân Khố / Xiangqi Cloud Book / 象棋云库) làm cho việc nghiên cứu kỳ phổ trở nên thuận tiện và hiệu quả hơn.

6.2 Vai Trò của Engine trên Các Nền Tảng Trực Tuyến

Vai trò của engine cờ tướng trên các nền tảng chơi cờ trực tuyến:

Hệ thống chống gian lận trên nền tảng chơi cờ: Các nền tảng trực tuyến sử dụng phân tích engine để phát hiện sự tương đồng giữa nước đi của người chơi và gợi ý của engine, đánh giá khả năng gian lận.

Robot luyện tập AI: Các nền tảng trực tuyến sử dụng engine như robot luyện tập, cung cấp thực hành chơi cho người dùng ở các cấp độ khó khác nhau.

Phân tích engine trong các buổi phát trực tiếp: Trong các buổi phát trực tiếp cờ tướng, người dẫn chương trình sử dụng engine để phân tích các ván đấu giải đấu, cung cấp gợi ý nước đi tốt nhất và hiển thị các biến.

Chương 7: Bảo Trì và Cập Nhật Engine Cờ Tướng

7.1 Thực Hành Kỹ Thuật cho Phát Hành Phiên Bản

Việc phát hành phiên bản của engine cờ tướng tuân theo các thực hành kỹ thuật nhất định:

Phiên bản phát triển: Liên tục tích hợp các tính năng mới trên nhánh phát triển với các commit thường xuyên.

Phiên bản thử nghiệm: Sau khi kiểm thử cơ bản, phát hành cho người kiểm thử cộng đồng để kiểm thử quy mô lớn.

Phiên bản ổn định: Sau khi xác thực thống kê trên các nền tảng như Fishtest, phát hành dưới dạng phiên bản ổn định.

Phiên bản hỗ trợ dài hạn: Đối với các phiên bản ổn định quan trọng, cung cấp cập nhật và bảo trì dài hạn.

7.2 Theo Dõi Vấn Đề và Phản Hồi Cộng Đồng

Các dự án mã nguồn mở như Pikafish sử dụng GitHub Issues để theo dõi vấn đề:

Báo cáo lỗi: Người dùng gửi báo cáo lỗi; nhà phát triển xác định vị trí và sửa lỗi.

Yêu cầu tính năng: Người dùng gửi yêu cầu tính năng; cộng đồng thảo luận về tính khả thi và mức độ ưu tiên của chúng.

Hỏi & Đáp: Các thành viên cộng đồng trả lời câu hỏi của người dùng khác trong Issues.

7.3 Tích Hợp Liên Tục và Kiểm Thử Tự Động

Các dự án engine cờ tướng hiện đại sử dụng Tích hợp Liên tục (CI) để đảm bảo chất lượng:

Kiểm thử biên dịch: Mỗi commit được tự động xác minh biên dịch thành công trên nhiều nền tảng và trình biên dịch.

Kiểm thử hồi quy: Chạy các kỳ phổ kiểm thử tiêu chuẩn để đảm bảo các thay đổi mã không gây ra suy giảm sức mạnh chơi.

Kiểm thử hiệu năng: So sánh hiệu suất tìm kiếm (NPS và các chỉ số khác) của phiên bản hiện tại với phiên bản trước.