Nhật ký: Tại sao mình lại hì hục code AdvCaro dù trên mạng đầy game cờ?
1. Bắt đầu từ sự "ức chế" với Cờ Caro truyền thống
Mình là một đứa cực kỳ ghiền board game từ nhỏ. Hồi đi học, cuốn tập nào cũng đầy những nét vẽ X O của môn Cờ Caro. Nhưng khi lớn lên, học IT và biết về thuật toán, mình nhận ra Caro truyền thống (Gomoku) có một điểm yếu chí mạng: Người đi trước luôn có lợi thế quá lớn.
Cảm giác chơi mà bị "bắt bài" từ nước đầu tiên thực sự rất chán. Thế là ý tưởng về Caro Đè Quân (3x3 Advanced Caro) nảy ra. Mình muốn tạo ra một bàn cờ nhỏ thôi (chỉ 3x3), nhưng mỗi nước đi đều phải tính toán, quân lớn đè quân bé, ván cờ có thể lật kèo ở phút chót 90. Lúc code xong cái logic đè quân, chạy thử trên console mà nó hoạt động đúng, mình đã hét lên giữa đêm luôn anh em ạ.
2. Cú sốc mang tên "Bot AI Cờ Gánh"
Làm xong Caro, mình nổi hứng muốn khôi phục lại Cờ Gánh - trò chơi tuổi thơ bằng sỏi đá ở miền quê. Vẽ cái bàn cờ HTML5 CSS Grid thì dễ (mất có nửa buổi), nhưng đến lúc code con Bot AI để người chơi đấu với máy thì... đúng là ác mộng.
Nếu bạn làm Cờ Vua hay Cờ Tướng, thư viện mã nguồn mở có sẵn đầy rẫy (kiểu Stockfish). Nhưng Cờ Gánh của Việt Nam mình thì không có một thư viện nào cả. Không một tài liệu tiếng Anh nào nói về cách đánh giá thế trận (Evaluation Function) của trò này.
Mình đã phải cày lại thuật toán Minimax và Alpha-Beta Pruning. Hàng chục đêm ngồi viết hàm đánh giá: Thế nào là "Tứ giác vàng", khi nào thì nên hiến tế quân để dụ Bot gánh... Có những hôm test, con Bot đi những nước "ngu" không thể tả, kẹp quân của mình xong tự tử luôn. Sửa bug đến mờ cả mắt, cuối cùng phiên bản hiện tại trên web cũng đủ khôn để hành hạ kha khá anh em mới chơi (cười).
3. Không chỉ là Game, đó là Đam mê
Trang web advcaro.io.vn này mình host trên Vercel. Mình không cố nhét thật nhiều thứ loè loẹt vào, mà chỉ tập trung tối ưu tốc độ. Mình muốn ai dùng điện thoại 3G cùi nhất cũng mở lên chơi mượt mà được. Các file Service Worker (PWA) mình đều tự tay cấu hình để anh em chơi offline không cần mạng.
Làm web cá nhân khổ lắm, đôi lúc nhìn Google Analytics lèo tèo vài ba người truy cập cũng nản muốn khóc. Nhưng cứ nghĩ đến việc có vài bạn sinh viên, hay vài người vô tình tìm thấy trang web, chơi thử và thốt lên: "Ê trò Cờ Gánh này bánh cuốn phết!" là mình lại có động lực fix bug tiếp.
Chơi thử thành quả của mình nhé!
Dự án vẫn đang được mình cập nhật mỗi ngày. Mọi người có thể trải nghiệm ngay trên trình duyệt mà không cần cài app.
Thách đấu Cờ Gánh Chơi Caro Đè Quân