Tại sao lại là Cờ Vua?
Thú thật, ban đầu mình chỉ tính làm các game thuần Việt. Nhưng Cờ Vua (Chess) lại là một "tượng đài" quá lớn trong làng board game. Nó đòi hỏi tư duy chiến lược, khả năng tính toán không gian và một cái đầu lạnh. Nhiều bạn nhắn tin bảo mình làm một bản Cờ Vua chơi trực tiếp trên web cho tiện, không cần tải app nặng máy. Vậy là mình xắn tay áo lên làm.
Đưa siêu AI "Stockfish" vào trình duyệt
Cái khó nhất khi làm Cờ Vua không phải là vẽ bàn cờ 64 ô, mà là làm sao tạo ra một con Bot AI đủ thông minh để anh em luyện tập. Chơi với con bot "ngu" thì chán, mà code một con bot "khôn" bằng thuật toán Minimax thì mất quá nhiều thời gian mà trình độ lại khó vượt qua mức cơ bản.
Giải pháp của mình? Mình đã bê nguyên bộ engine Stockfish 18 nổi tiếng thế giới, biên dịch sang WebAssembly để nó có thể chạy "mượt như bơ" ngay trên trình duyệt của anh em (kể cả trên điện thoại iPhone hay Android). Để máy anh em không bị đơ khi Bot suy nghĩ, mình ép nó chạy ngầm trong một Web Worker riêng biệt.
4 Cấp độ Bot: Từ "Tấu hài" đến "Hủy diệt"
Stockfish mặc định mạnh ngang ngửa Đại Kiện Tướng. Nếu thả rông nó thì anh em bị hành cho "bay màu" trong 10 nước mất. Nên mình đã cấu hình lại, chia làm 4 cấp độ:
- Sĩ Tử: Bot được cố tình làm cho ngớ ngẩn (Depth = 1), hay bỏ lỡ cơ hội ăn quân. Hợp cho anh em mới làm quen cách di chuyển.
- Tú Tài: Khôn hơn một chút, biết phòng thủ cơ bản.
- Bảng Nhãn: Áp lực bắt đầu lớn. Bot biết kiểm soát trung tâm và không bỏ qua sai lầm của bạn.
- Trạng Nguyên: Đây là lúc Stockfish được "bung lụa". Nó tính toán hàng triệu nước cờ mỗi giây. Lời khuyên của mình: Hãy đánh thật chậm, giữ cấu trúc Tốt kín kẽ và đừng bao giờ để Vua lang thang ở trung tâm. Nhập thành sớm là sống còn!
Nếu lỡ đi sai một nước, anh em cứ mạnh dạn dùng tính năng Quay Lại (Undo). Chơi với máy thì mục đích chính là học hỏi từ sai lầm mà. Chúc anh em sớm ngày đánh bại được Trạng Nguyên nhé!
❓ Tâm sự nhỏ (FAQ) cùng Dev
Chắc chắn rồi anh em. Giao diện được mình code 100% bằng HTML/CSS/JS thuần (không dùng thư viện nặng nề) nên nó tự động co giãn cực tốt trên màn hình iPhone hay Android. Chỉ cần mở Safari hoặc Chrome là chiến.
Nói nhỏ cho anh em một bí quyết: Đừng đánh cờ chớp (blitz) với nó. Bot tính toán bằng CPU nên tốc độ phản xạ của nó là mili-giây. Thay vào đó, anh em hãy chủ động chơi "thế cờ đóng", hạn chế đổi quân sớm để làm khó hàm đánh giá điểm số (evaluation function) của Bot. Chi tiết mình có viết ở bài Giải mã thuật toán Bot Trạng Nguyên, anh em tham khảo nha.