Thanks to visit codestin.com
Credit goes to github.com

Skip to content

kics223w1/btl2-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gomoku (Cờ Caro) - AI Game Playing Agent

Đồ án thực hành môn Trí tuệ nhân tạo - BTL2

🚀 Quick Start (macOS)

# 1. Tạo và kích hoạt virtual environment
python3 -m venv venv
source venv/bin/activate

# 2. Cài đặt dependencies
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt

# 3. Chạy game
python3 main.py

# 4. Hoặc chạy evaluation
python3 main.py --evaluate

Gặp vấn đề? Xem phần Troubleshooting bên dưới.

Giới thiệu

Project này hiện thực game playing agent cho trò chơi Gomoku (Cờ Caro) với 2 giải thuật:

  1. Minimax với Alpha-Beta Pruning (75% điểm)
  2. Machine Learning Agent (25% điểm)

Về Trò Chơi Gomoku

  • Kích thước: Bàn cờ 15x15
  • Luật chơi: Người chơi lần lượt đặt quân cờ (X hoặc O), người nào tạo được 5 quân liên tiếp theo hàng ngang, dọc, hoặc chéo sẽ thắng
  • Hệ số nhánh: Rất cao (tối đa 225 nước đi có thể)
  • Độ sâu cây: Có thể lên đến 225 (tổng số ô trên bàn cờ)

Cấu Trúc Project

btl2-ai/
├── game.py          # Logic trò chơi Gomoku
├── agents.py        # Các agent: Random, Minimax, ML
├── gui.py           # Giao diện người dùng với Pygame
├── evaluate.py      # Hệ thống đánh giá agents
├── requirements.txt # Dependencies
└── README.md        # File này

Cài Đặt

1. Clone hoặc tải project về

cd /Applications/homework/btl2-ai

2. Tạo Virtual Environment (Khuyến nghị)

macOS/Linux:

# Tạo virtual environment
python3 -m venv venv

# Kích hoạt virtual environment
source venv/bin/activate

# Upgrade pip
python3 -m pip install --upgrade pip

# Cài đặt dependencies
python3 -m pip install -r requirements.txt

Windows:

# Tạo virtual environment
python -m venv venv

# Kích hoạt virtual environment
venv\Scripts\activate

# Upgrade pip
python -m pip install --upgrade pip

# Cài đặt dependencies
python -m pip install -r requirements.txt

Hoặc dùng Setup Script tự động:

# macOS/Linux
./setup.sh

# Windows
setup.bat

3. Các thư viện cần thiết

  • pygame: Giao diện đồ họa
  • numpy: Xử lý ma trận và mảng
  • tensorflow: Machine Learning
  • scikit-learn: Các thuật toán ML bổ trợ
  • matplotlib: Vẽ biểu đồ (optional)

4. Kiểm tra cài đặt

# Chạy quick test để verify
python3 quick_test.py

Lưu ý cho macOS:

  • Nếu gặp lỗi pip: command not found, dùng python3 -m pip thay vì pip
  • Nếu gặp lỗi với tensorflow, có thể cần cài Rosetta 2 (cho Mac M1/M2):
    softwareupdate --install-rosetta

Sử Dụng

Lưu ý: Đảm bảo đã kích hoạt virtual environment trước khi chạy:

source venv/bin/activate  # macOS/Linux
# hoặc
venv\Scripts\activate     # Windows

1. Chạy Game với GUI

# macOS/Linux
python3 main.py

# hoặc trực tiếp
python3 gui.py

Giao diện sẽ hiển thị menu với các tùy chọn:

  • Human vs Minimax: Chơi với AI Minimax
  • Human vs ML Agent: Chơi với AI Machine Learning
  • Minimax vs Random: Xem Minimax đấu với Random
  • ML vs Random: Xem ML Agent đấu với Random
  • Minimax vs ML: Xem hai AI đấu với nhau

2. Đánh Giá Agents

# Chạy evaluation đầy đủ
python3 evaluate.py

# hoặc dùng main.py với options
python3 main.py --evaluate

# Tùy chỉnh số trận (mặc định 50)
python3 main.py --evaluate --games 20

Script này sẽ:

  1. Chạy 50 trận giữa Minimax vs Random Agent
  2. Chạy 50 trận giữa ML Agent vs Random Agent
  3. Chạy 20 trận giữa Minimax vs ML Agent
  4. Hiển thị tỉ lệ thắng và kết quả đánh giá

Yêu cầu đạt được:

  • ✅ Minimax thắng Random >= 90%
  • ✅ ML Agent thắng Random >= 60%

Chi Tiết Các Agent

1. Random Agent

  • Chọn nước đi ngẫu nhiên từ các ô trống
  • Dùng làm baseline để đánh giá

2. Minimax Agent (Alpha-Beta Pruning)

Đặc điểm:

  • Độ sâu tìm kiếm: 3-4 levels
  • Sử dụng Alpha-Beta Pruning để cắt tỉa
  • Heuristic evaluation function đánh giá:
    • Chuỗi 5 quân: 100,000 điểm
    • Chuỗi 4 quân: 10,000 điểm
    • Chuỗi 3 quân: 1,000 điểm
    • Chuỗi 2 quân: 100 điểm
  • Tối ưu hóa: Chỉ xét các nước đi gần quân cờ đã có (radius=2)

Độ phức tạp:

  • Time complexity: O(b^d) với pruning
  • Space complexity: O(d)
  • b = branching factor (high), d = depth

3. Machine Learning Agent

Đặc điểm:

  • Sử dụng pattern recognition
  • Đánh giá dựa trên các mẫu (patterns):
    • Five in a row: 100,000
    • Open four: 50,000
    • Four: 10,000
    • Open three: 5,000
    • Three: 1,000
  • Phân tích threat (mối đe dọa) của đối thủ
  • Có element của exploration (random factor)

Cải tiến có thể thêm:

  • Neural Network với TensorFlow
  • Reinforcement Learning
  • Training từ database các ván đấu

Đánh Giá Hiệu Năng

Yêu cầu BTL

  1. ✅ Agent chơi đúng luật
  2. ✅ Minimax thắng Random >= 90%
  3. ✅ ML Agent thắng Random >= 60%

Tiêu chí chấm điểm

  • Minimax: 75% điểm BTL
  • ML Agent: 25% điểm BTL
  • Mỗi 10% thiếu win rate = -2 điểm

Screenshots

Menu Screen

Giao diện menu với các chế độ chơi

Game Screen

  • Bàn cờ 15x15 đẹp mắt
  • Info panel hiển thị thông tin game
  • Highlight nước đi cuối cùng
  • Button Reset và Menu

Game Over

Hiển thị người thắng cuộc và thông báo

Tính Năng Nổi Bật

  1. UI Đẹp Mắt: Giao diện hiện đại với Pygame
  2. Nhiều Chế Độ: Human vs AI, AI vs AI
  3. Tối Ưu Hóa: Alpha-Beta Pruning, Smart Move Selection
  4. Đánh Giá Tự Động: System test tự động với kết quả chi tiết
  5. Mở Rộng Dễ Dàng: Code structure rõ ràng, dễ thêm agent mới

Cải Tiến Trong Tương Lai

  1. Deep Learning: Sử dụng CNN cho board evaluation
  2. MCTS: Monte Carlo Tree Search
  3. Reinforcement Learning: AlphaGo-style training
  4. Opening Book: Database các nước đi mở màn
  5. Endgame Solver: Giải chính xác endgame
  6. Performance Profiling: Tối ưu hóa tốc độ

Tác Giả

  • Đồ án BTL2 môn Trí tuệ nhân tạo
  • Năm học 2025

License

MIT License - Sử dụng tự do cho mục đích học tập

Tài Liệu Tham Khảo

  1. Russell & Norvig - "Artificial Intelligence: A Modern Approach"
  2. Minimax Algorithm with Alpha-Beta Pruning
  3. Gomoku AI Strategies
  4. Python Game Development with Pygame

Lưu ý: Project này được thiết kế cho mục đích học tập. Code có thể được cải tiến thêm về mặt performance và AI strategy.

Hướng Dẫn Video

Tạo video thuyết trình (tối đa 15 phút) bao gồm:

  1. Giới thiệu trò chơi Gomoku
  2. Demo các chế độ chơi
  3. Giải thích thuật toán Minimax
  4. Giải thích ML Agent
  5. Kết quả evaluation
  6. Kết luận và hướng phát triển

Troubleshooting

macOS - Common Issues

1. pip: command not found

Giải pháp: Dùng python3 -m pip thay vì pip

python3 -m pip install -r requirements.txt

2. Virtual environment không kích hoạt được

Giải pháp: Đảm bảo bạn đang ở đúng thư mục

cd /Applications/homework/btl2-ai
python3 -m venv venv
source venv/bin/activate

# Bạn sẽ thấy (venv) xuất hiện ở đầu dòng lệnh
(venv) ➜ btl2-ai

3. Lỗi khi cài TensorFlow trên Mac M1/M2

Giải pháp 1: Cài Rosetta 2

softwareupdate --install-rosetta

Giải pháp 2: Dùng TensorFlow phiên bản cho Apple Silicon

python3 -m pip install tensorflow-macos
python3 -m pip install tensorflow-metal

Giải pháp 3 (tạm thời): Skip TensorFlow nếu chỉ test Minimax

# Chỉnh sửa requirements.txt, comment dòng tensorflow
# tensorflow==2.15.0  # Comment dòng này

# Sau đó cài các package còn lại
python3 -m pip install pygame numpy scikit-learn matplotlib

4. Pygame không hiển thị window

Giải pháp: Cài đặt pygame đúng cách

python3 -m pip uninstall pygame
python3 -m pip install pygame

Nếu vẫn lỗi, thử:

brew install sdl2 sdl2_image sdl2_ttf sdl2_mixer
python3 -m pip install pygame

5. Permission denied khi chạy setup.sh

Giải pháp: Cấp quyền thực thi

chmod +x setup.sh
./setup.sh

6. No module named 'numpy' sau khi cài

Giải pháp: Đảm bảo virtual environment được kích hoạt

# Kích hoạt lại venv
source venv/bin/activate

# Kiểm tra xem đang dùng python nào
which python3

# Nên hiển thị: /Applications/homework/btl2-ai/venv/bin/python3

# Cài lại trong venv
python3 -m pip install -r requirements.txt

Kiểm Tra Cài Đặt

Chạy lệnh sau để kiểm tra:

python3 -c "import pygame, numpy; print('✓ Dependencies OK')"

Nếu không có lỗi, bạn đã sẵn sàng!

Cần Thêm Trợ Giúp?

Tham khảo các file hướng dẫn khác:

  • QUICKSTART.md - Hướng dẫn nhanh
  • USAGE.md - Hướng dẫn chi tiết
  • START_HERE.txt - Getting started guide

btl2-ai

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published