GITHUB – KHO MÃ NGUỒN CỜ TƯỚNG, CỜ ÚP TRONG THỜI ĐẠI AI CODING

cudem_HCM

New member
Mình mở topic này với mong muốn AE cùng nhau chia sẻ những Repo GitHub hay về Cờ Tướng – Cờ Úp (Xiangqi – Jieqi): từ engine, GUI, luật cờ, bàn cờ Web, đọc FEN, quản lý biên bản, đấu online cho tới các công cụ phục vụ nghiên cứu.

Theo mình, đây là một thời điểm rất đáng để phong trào phần mềm cờ sôi động trở lại.

Ngày trước nói tới phần mềm cờ, phần lớn chúng ta chỉ quanh quẩn:

Engine nào mạnh hơn?
Book nào sâu hơn?
Cho hai software đánh nhau xem con nào thắng?


Nhưng thời AI Coding hiện nay thì cuộc chơi đã khác.

Người chơi cờ có kinh nghiệm, hiểu mình cần gì, thậm chí không phải lập trình viên chuyên nghiệp, đã có thể dùng AI như Codex, Claude Code, Gemini, Copilot... để đọc source, giải thích kiến trúc, sửa code, viết giao diện, kết nối engine, xây database, làm Web/App và thử nghiệm những ý tưởng riêng.

Điểm quan trọng lúc này không còn đơn thuần là:

“Anh có biết code hay không?”

mà dần chuyển thành:

“Anh có biết mình muốn làm cái gì hay không?”

Một người hiểu cờ, đã sử dụng nhiều software trong nhiều năm, biết chức năng nào thực sự hữu ích, thao tác nào thừa, người dùng khó chịu ở đâu... cộng thêm AI Coding, hoàn toàn có khả năng tạo ra một sản phẩm rất tốt.

Không nhất thiết phải phát minh lại mọi thứ từ số 0.

GitHub hiện đã có cả một hệ sinh thái. Riêng topic Xiangqi có khoảng 165 repository công khai, từ C++, Python, JavaScript, TypeScript, Java cho tới C#. Còn Jieqi tuy ít hơn nhưng cũng đã xuất hiện những project khá hoàn chỉnh về GUI, engine và Web.

1. Pikafish

Đây có lẽ là cái tên AE chơi software hiện nay quá quen thuộc.

Pikafish là engine Xiangqi mã nguồn mở phát triển từ Stockfish, hiện GitHub đã có hơn 2.000 stars và hơn 360 forks. Source engine, NNUE, protocol, hệ thống build... đều có thể nghiên cứu trực tiếp.

Pikafish trên GitHub


2. Fairy-Stockfish

Một project rất đáng xem nếu muốn nghiên cứu cách một engine hỗ trợ nhiều biến thể cờ.

Fairy-Stockfish hỗ trợ Xiangqi, UCI/UCCI cùng nhiều chess variant khác và hiện có khoảng 900 stars.

Fairy-Stockfish


3. ChineseChess – Qt/C++

Repo này rất đáng tham khảo đối với AE muốn làm GUI desktop đa nền tảng.

Project dùng Qt5/Qt6, chạy Windows, macOS, Linux, có đấu online và source/comment tương đối rõ. Hiện repo có hơn 800 stars và 200 forks.

XMuli / ChineseChess


4. ElephantEye – Elephant Eye

Một project rất lâu đời nhưng cực kỳ có giá trị về mặt nghiên cứu engine và protocol.

ElephantEye hỗ trợ UCCI, source mở và có hàng trăm star/fork. Với AE muốn hiểu cấu trúc engine Xiangqi truyền thống thì đây vẫn là tài liệu tốt.

ElephantEye / EleEye


5. Xiangqiground

AE nào muốn làm Web/Mobile nên xem repo này.

Đây là thư viện bàn cờ Xiangqi tương tác được phát triển theo hướng chessground: kéo thả quân, animation, premove, mũi tên SVG, highlight nước đi, FEN, xoay bàn... và không phụ thuộc framework.

Xiangqiground


6. xiangqi.js

Một thư viện JavaScript xử lý phần luật cờ khá gọn: sinh nước đi, kiểm tra nước hợp lệ, chiếu, chiếu bí, hòa, FEN...

Rất thích hợp để lấy làm lớp logic cho một Web App thay vì tự viết lại toàn bộ luật cờ.

xiangqi.js


Phần này mình nghĩ còn nhiều đất để AE Việt Nam khai phá hơn.

7. JieqiBox

Một GUI Jieqi khá hiện đại, dùng Tauri + Vue 3 + TypeScript, có Windows/Linux và hỗ trợ một phần Android.

Có bàn cờ, phân tích engine thời gian thực, FEN, editor, lịch sử nước đi và hỗ trợ Pikafish Jieqi. Đặc biệt còn có cả Tiếng Việt.

JieqiBox


8. Jieqi AI / Musesfish

Repo của miaosiSari chứa khá nhiều code nghiên cứu Jieqi, từ PVS, MTD, khai cuộc cho tới các heuristic riêng của Cờ Úp như ám pháo, ám mã, kỳ vọng quân úp...

Đây là source rất thú vị cho AE muốn hiểu engine Jieqi khác Xiangqi thông thường ở đâu.

miaosiSari / Jieqi


9. FlipChess

Project này càng thú vị nếu AE đang nghĩ tới một Jieqi Web/PWA hoàn chỉnh.

Stack khá hiện đại:

React + TypeScript + Vite + PWA + Express + MySQL

Có đấu AI, replay, FEN, PVP, tài khoản, ranking, server và kết nối Pikafish Jieqi.

FlipChess – Jieqi PWA


10. Jieqi Web + Flask

Một ví dụ khác khá dễ đọc cho người mới: frontend JavaScript thuần, backend Flask, gọi engine Musesfish.

Có đấu người với máy, AI vs AI, phân tích thế trận, undo/redo và xoay bàn.

justLxy / Jieqi


Trước đây một software thương mại có lợi thế rất lớn vì một cá nhân bình thường khó lòng tự viết:

Engine interface + bàn cờ + database + book + biên bản + network + GUI + installer...

Bây giờ thì khác.

Ta có thể lấy một project bàn cờ Web, một thư viện luật cờ, kết nối Pikafish, đưa yêu cầu cho AI viết lớp trung gian, rồi tiếp tục yêu cầu:

“Thêm MultiPV.”
“Vẽ mũi tên biến chính.”
“Cho click một nước trong PV để dựng thử thế cờ.”
“Viết chức năng luyện nhớ ván.”
“Thêm database FEN.”
“Làm PWA chạy trên iPhone.”
“Viết server đấu online.”
Và từng bước nó thành một sản phẩm thật.

AI Coding không tự biến một người không biết gì thành chuyên gia phần mềm.

Nhưng nó đang khuếch đại rất mạnh lợi thế của những người có tư duy sản phẩm và có trải nghiệm sử dụng thực tế.

Đây chỉ là cảm nhận cá nhân sau quá trình sử dụng software, không phải kết luận kỹ thuật về code của tác giả.

Pengfei có rất nhiều chức năng, nhưng càng về sau mình lại thấy giao diện khá rối. Những thao tác như đổi engine, đổi book hoặc xử lý nhiều chức năng đôi lúc cho cảm giác nặng và thiếu độ liền mạch.

Mình hiểu một software thương mại phải có cơ chế bảo vệ bản quyền, chống crack, kiểm tra license..., nhưng nếu lớp bảo vệ hoặc kiến trúc chương trình làm ảnh hưởng tới trải nghiệm thì cuối cùng người dùng vẫn là người chịu sự đánh đổi.

Trong khi sử dụng Shark, Vô Cực (Infinity), cá nhân mình lại thích cảm giác gọn và mượt hơn ở nhiều thao tác.

Điều này cho thấy:

Nhiều chức năng chưa chắc đã tạo ra phần mềm tốt.

Một software tốt cần cân bằng giữa:

Tính năng + tốc độ + giao diện + workflow + sự ổn định + trải nghiệm người chơi cờ.

Đó lại chính là nơi những người chơi cờ lâu năm có lợi thế.

Programmer có thể biết cách viết một button.

Nhưng người chơi cờ mới biết:

Button đó có đáng tồn tại hay không.
(CÒN TIẾP) (Theo Thanglongkydao)
 

11. TChess / public-XiangQi​


Một GUI Cờ Tướng mã nguồn mở rất đáng tham khảo nếu AE muốn nghiên cứu cách xây dựng phần mềm giao diện kết nối engine hoàn chỉnh.
TChess hỗ trợ engine UCI/UCCI, có các chức năng như nạp engine, đấu cờ, phân tích, quản lý kỳ phổ, kết nối và khai cuộc/book. Các bản gần đây còn bổ sung MultiPV, biến nhánh, đọc XQF/CBR, comment kỳ phổ, chỉnh thứ tự biến, theme, màu mũi tên và tối ưu việc truy vấn opening book.
Đặc biệt từ bản V1.7, TChess đã hỗ trợ trực tiếp opening book định dạng XQB, nên đây là một project khá hay để AE nghiên cứu mối liên kết giữa:
GUI → Engine → Book → Kỳ phổ → Phân tích.
Vì được viết bằng Java + JavaFX và chạy đa nền tảng nên TChess cũng là một codebase rất phù hợp để đưa cho AI Coding đọc kiến trúc, sửa giao diện hoặc phát triển thêm chức năng theo nhu cầu riêng.

TChess / public-XiangQi



Nếu AE quan tâm tới Book Cờ Tướng, thì repo fisherfan/xqbook rất đáng xem.

XQBook xây dựng định dạng opening book trên SQLite3, vì vậy việc đọc, chỉnh sửa hoặc viết công cụ quản lý book tương đối thuận tiện. Thay vì chỉ coi book là một file đóng, developer có thể truy vấn dữ liệu trực tiếp bằng hệ sinh thái SQLite rồi xây Book Editor, công cụ thống kê hoặc kết nối với GUI riêng.
Một điểm khá hay là position key của XQB được thiết kế để có thể phục hồi lại FEN, đồng thời position được chuẩn hóa theo hướng cố định để một lần truy vấn có thể tận dụng cho các thế đối xứng. Repo cũng có sẵn file book.xqb, code C và phần triển khai SQLite để tham khảo.
Tác giả còn định hướng các phần mở rộng riêng cho từng loại cờ:
.xqb – Cờ Tướng
.jqb – Cờ Úp / Jieqi
.ffqb – FanFanQi

Đây là một mảng rất hợp với AI Coding, vì từ source này AE có thể tiếp tục phát triển:
Book Editor → tìm theo FEN → thống kê nước đi → Win/Draw/Loss → lọc biến → kết nối Pikafish → tự xây book cá nhân.

XQBook



Một repo cổ điển nhưng rất đáng học nếu AE muốn hiểu bản chất một AI Cờ Tướng được xây từ thuật toán tìm kiếm như thế nào.
XQWLight triển khai thuật toán Cờ Tướng bằng nhiều ngôn ngữ như C++, Java, JavaScript và ActionScript. Điểm hay là code tương đối gọn, phù hợp để AI Coding đọc, giải thích từng lớp: bàn cờ, sinh nước, đánh giá thế trận, tìm kiếm và giao diện.
Đây là kiểu repo rất thích hợp cho người muốn đi từ:
Luật cờ → sinh nước → đánh giá → Search → AI hoàn chỉnh.

XiangQi Wizard Light



Repo của Royhoo rất đáng đưa vào danh sách vì nó gần như một giáo trình lập trình AI Cờ Tướng bằng JavaScript.

Project chia thành từng bước rõ ràng: dựng bàn cờ, FEN, luật đi quân, Minimax, Alpha-Beta, iterative deepening, history heuristic, quiescence search, Zobrist hash, transposition table, killer move và cuối cùng là opening book.

Đối với AI Coding, đây là source cực hay vì có thể yêu cầu AI:

“Giải thích từ step 1 đến step 8.”

hoặc:

“Viết lại engine này bằng C++ / Rust / Java.”

Đây chính là dạng repo giúp AE hiểu engine, chứ không chỉ biết tải engine về chạy.

Write a Chinese Chess Program



Một hướng hoàn toàn khác: Computer Vision + Cờ Tướng.
VinXiangQi là công cụ kết nối bàn cờ dựa trên YOLOv5, nhận diện hình ảnh bàn cờ từ cửa sổ chương trình, xác định trạng thái quân cờ rồi kết nối với engine qua UCI/UCCI. Project còn có cơ chế profile cửa sổ, capture foreground/background và hiển thị kết quả nhận diện.
Repo này đặc biệt đáng xem với AE muốn nghiên cứu:

Capture cửa sổ → nhận diện quân → chuyển thành position → gửi engine → nhận nước đi.

Nó cho thấy software cờ hiện đại không nhất thiết phải nhập FEN bằng tay; Vision hoàn toàn có thể trở thành cầu nối giữa bàn cờ và engine.

VinXiangQi



Project này mới hơn và stack rất đáng tham khảo.

Ứng dụng dùng YOLOv8 + ONNX Runtime để nhận diện bàn cờ theo thời gian thực, sau đó kết nối Pikafish để phân tích. Phần frontend dùng Vue 3 + TypeScript, desktop đóng bằng Tauri, còn phần lõi dùng Rust; project hỗ trợ Windows, macOS và Linux.

Đây gần như là một ví dụ hoàn chỉnh của kiến trúc software cờ hiện đại:

Vision → Position → Engine → Analysis → GUI.

AE đang muốn làm công cụ nhận diện bàn cờ từ màn hình thì repo này rất đáng mổ xẻ bằng Codex hoặc Claude Code.

Chessboard – Xiangqi Learning Assistant



Một repo nhỏ nhưng ý tưởng rất thực dụng.

Chess_diagram_to_FEN dùng Machine Learning/PyTorch để đọc hình ảnh bàn cờ và xuất trực tiếp FEN, hỗ trợ cả Chess, Xiangqi và Shogi. Repo có sẵn model, pipeline nhận diện và cả code để tự tạo dữ liệu rồi train lại model.

Ứng dụng vào Cờ Tướng thì quá rõ:

Chụp ảnh thế cờ → nhận diện → FEN → mở trong GUI → Pikafish phân tích.

Đây cũng là một ví dụ rất hay cho việc ghép nhiều project open source lại với nhau để tạo thành một chức năng mà trước đây tưởng khá phức tạp.

Chess Diagram to FEN



Nếu Pikafish đại diện cho hướng engine search + NNUE hiện đại, thì repo này lại rất thú vị ở góc Reinforcement Learning / AlphaZero.

ChineseChess-AlphaZero triển khai phương pháp AlphaZero cho Cờ Tướng, gồm Self-Play, Training, Evaluation, MCTS, supervised learning và cả GUI để chơi với model. Project từng thiết kế cơ chế distributed training để nhiều máy cùng tạo dữ liệu self-play.

Code đã khá cũ, dựa trên Python/TensorFlow đời trước, nên không nên coi đây là framework mới để dùng nguyên xi.

Nhưng về mặt ý tưởng kiến trúc AI, nó vẫn cực kỳ đáng nghiên cứu:

Self Play → Data → Neural Network → MCTS → Model mới → tiếp tục Self Play.

AE muốn hiểu câu chuyện “AI học đánh Cờ Tướng như thế nào?” thì đây là repo rất hay.

ChineseChess-AlphaZero



Repo này đáng chú ý vì nó không chỉ là bàn cờ hay engine mà gần như một hệ thống Cờ Tướng online hoàn chỉnh.

ElephantChess có:

PvP realtime → đấu Bot → Puzzle → Database ván đấu → Analysis Board → Engine Evaluation → Variations → Comment → tài khoản người dùng.

Phần core được chia thành nhiều module riêng như xiangqi-core, engine-api, webapp, database và service layer. Chính cách tổ chức này rất đáng tham khảo nếu AE muốn xây một hệ thống Web lớn thay vì một GUI chạy local.

Đặc biệt với AI Coding, ta có thể cho AI đọc từng module để hiểu:

Client → Server → Database → Engine → Analysis → User Account.

ElephantChess



Repo cuối cùng mình chọn là pychess-variants.

Đây là source phía sau PyChess, một server chơi nhiều loại cờ, trong đó có Xiangqi. Backend chủ yếu dùng Python, frontend TypeScript và dữ liệu dùng MongoDB; phần sinh nước, kiểm tra luật và engine analysis sử dụng Fairy-Stockfish cùng các thành phần WebAssembly liên quan.

Giá trị lớn của repo này không nằm ở riêng Cờ Tướng mà ở cách người ta xây:

Lobby → tài khoản → phòng đấu → đồng bộ realtime → engine → database → lịch sử ván → nhiều biến thể cờ.

Nếu AE có ý định làm server đấu Cờ Tướng/Cờ Úp online, đây là một codebase rất đáng dùng AI để nghiên cứu kiến trúc.

PyChess Variants

--------------------------------------------------------
Lời kết

20 repo trên chỉ là điểm khởi đầu. Giá trị lớn nhất không nằm ở việc có bao nhiêu mã nguồn, mà ở chỗ AE có thể học, thử, cải tiến và biến chúng thành công cụ phù hợp với chính nhu cầu của mình.

Hy vọng topic này sẽ còn được bổ sung thêm nhiều repo hay, nhiều ý tưởng mới và nhiều sản phẩm thú vị từ cộng đồng.

AE biết repo nào đáng tham khảo thì tiếp tục chia sẻ bên dưới nhé. Biết đâu từ một repo nhỏ hôm nay lại sinh ra một phần mềm rất hay ngày mai
 
Back
Top