Chess_with_AI / README.md
ncn2569's picture
PLEASE
eace830
metadata
title: Chess With AI
emoji: ♟️
colorFrom: red
colorTo: yellow
sdk: docker
app_port: 8501
tags:
  - streamlit
  - chess
  - minimax
  - machine-learning
  - imitation-learning
pinned: false
short_description: Chess game với Minimax AI  ML Agent (Imitation Learning)

♟️ Chess with AI

Dự án cờ vua tích hợp 2 loại AI khác nhau, cho phép người dùng thách đấu trực tiếp trên trình duyệt.

Chế độ chơi

Người vs Minimax AI — AI cổ điển sử dụng thuật toán Minimax với Alpha-Beta Pruning và Quiescence Search. Có thể chỉnh độ sâu tìm kiếm từ 1-4, mạnh và đáng tin cậy.

Người vs ML Agent — AI học bằng Imitation Learning, được train trên dữ liệu PGN của các kỳ thủ top thế giới (Carlsen, Nakamura, Caruana...). Agent bắt chước phong cách chơi của con người nhưng không có khả năng tính toán chiến thuật sâu — nên đôi lúc sẽ đi những nước trông có vẻ... sáng tạo.

Kiến trúc

Minimax Engine

  • Minimax + Alpha-Beta Pruning (Negamax implementation)
  • Quiescence Search để tránh horizon effect
  • Hàm đánh giá: material score + center control + mobility

ML Agent

  • Mô hình CNN: Conv2d(13→64) → Conv2d(64→128) → FC(8192→256) → FC(256→N)
  • Input: bàn cờ dạng tensor 13×8×8 (12 kênh quân cờ + 1 kênh nước đi hợp lệ)
  • Output: phân phối xác suất trên toàn bộ nước đi đã thấy trong tập train
  • Training: Imitation Learning trên ~16 file PGN, 100 epochs
  • Giới hạn: không có look-ahead, không self-play → chơi theo pattern là chính

Tech Stack

  • python-chess — logic bàn cờ
  • PyTorch — model ML
  • Streamlit — giao diện web
  • Docker — deployment

Chạy local

git clone https://github.com/ncn2569/Chess-game-with-AI-and-ML
cd Chess-game-with-AI-and-ML
pip install -r requirements.txt
streamlit run src/streamlit_app.py

Nguồn dữ liệu train

PGN của các kỳ thủ: Carlsen, Nakamura, Caruana, Ding Liren, Anand, So, Erigaisi và một số kỳ thủ khác — tổng cộng khoảng 16 file.