Tự làm game cờ Carô GoMockU: Khi AI vừa đánh cờ vừa cà khịa

Cờ Carô (Gomoku) chắc chắn là trò chơi quốc dân gắn liền với tuổi thơ của hầu hết anh em lập trình từ những ngày còn ngồi xé vở ô ly cắn bút thách đấu đứa bàn bên. Dạo này công việc trên công ty cũng hòm hòm, rảnh rỗi ngứa tay muốn làm một cái gì đó vừa mang tính hoài niệm vừa có chút gia vị thuật toán cho vui.

Lên mạng dạo một vòng thử mấy con bot cờ Carô có sẵn thì thấy đa phần một là đánh quá máy móc khô khan, hai là giao diện cũ kỹ từ thập kỷ trước. Quan trọng nhất là mỗi lần thắng hay thua, con bot cứ trơ trơ ra chả có cảm xúc gì. Thế là mình nảy ra ý tưởng: Sao không tự viết một con game cờ Carô hiện đại, mượt mà, có thuật toán giải cờ bài bản và quan trọng nhất là con bot phải biết... "gáy bẩn" và cà khịa mỗi khi đối thủ đi nước sai?

Thế là dự án GoMockU ra đời.

            Go               +         Mock         +         U (You)
(Vừa là cờ, vừa là đi nước cờ)      (Cà khịa, chọc ngoáy)        (Chính là bạn)
─────────────────────────────────────────────────────────────────────────────
          👉 Thông điệp: "Bạn hạ một quân cờ, Bot cà khịa bạn một câu!"

🧭 Khám phá 6 chế độ chơi tại Menu chính

Khi thiết kế menu chính cho GoMockU, mình không muốn nhồi nhét một danh sách nút bấm đơn điệu. Toàn bộ trải nghiệm được phân bổ thành 2 khu vực rõ ràng: Đấu Trường Thi ĐấuHọc Tập & Kỳ Viện, tương ứng với 6 chế độ chơi riêng biệt:


⚔️ Khu vực 1: Đấu Trường Thi Đấu

Khu vực này dành riêng cho việc so tài kỹ năng và thử thách bản lĩnh thi đấu trực tiếp với các cấp độ AI:

Đấu Trường Thi Đấu trong GoMockU

1. 🏆 Chiến Dịch Leo Cấp (Campaign Mode) — Thập Nhị Đại Tông Sư

Chế độ cốt lõi cho anh em thích cảm giác leo rank bậc thang. Bạn sẽ bắt đầu từ con số 0 và leo qua 12 tầng tháp để đối đầu với 12 nhân cách Bot:

Đánh thắng cấp hiện tại thì hệ thống mới mở khóa đối thủ tiếp theo. Cảm giác vượt qua từng cấp rồi nghe bot đổi giọng từ khinh khỉnh sang cay cú khá là giải trí.

2. ⚡ Cờ Chớp Thử Thách (Blitz Challenge) — Áp lực nghẹt thở từng giây

Nơi thử thách phản xạ và trực giác chiến thuật dưới áp lực thời gian:

3. ⚔️ Đấu Tùy Chọn (Custom Match) — Phòng tập tự do


🎓 Khu vực 2: Học Tập & Kỳ Viện

Nếu không muốn chỉ cắm đầu vào đánh cờ mà muốn nghiên cứu bài bản, khu vực này sẽ biến game thành một học viện cờ thu nhỏ:

Học Tập & Kỳ Viện trong GoMockU

4. 📘 Kỳ Viện Bách Khoa & Bàn Cờ Sandbox (Master Guide & Sandbox)

5. 🎓 Học Viện Gomo (Tutor Coaching Mode) — Gia sư 1-1 theo sát từng nước

Tính năng đóng vai trò như một người thầy dạy cờ ngồi bên cạnh bạn trong suốt ván đấu:

6. 🧩 Giải Đố Thế Cờ (Tactical Puzzles) — Sát cục tạo sinh ngẫu nhiên

Thay vì tải về một danh sách vài chục bài tập tĩnh giải vài lần là nhớ hết đáp án, mình xây dựng hệ thống cờ thế theo dạng Tạo sinh thủ tục (Procedural Kernel Generator):


🎭 Hệ thống nhận diện sự kiện cà khịa đa dạng & Bắt thóp tâm lý người chơi

Điểm làm nên linh hồn và sự hài hước của GoMockU chính là hệ thống Bot Persona được lập trình để nhận diện hàng loạt hành vi và tình huống đa dạng trong và ngoài bàn cờ, kết hợp cùng kho câu thoại tiếng Việt phong phú đậm chất "gáy bẩn":

Giao diện bàn cờ và Bot cà khịa thời gian thực

Hệ thống cảm xúc của Bot được phân chia thành nhiều sắc thái biểu cảm như Khinh bỉ (😒), Cười khẩy (😏), Mặt hề (🤡), Kính lúp bắt thóp (🧐), Ngáp ngủ (🥱), Ác quỷ (😈), Hoảng loạn (😱)... tương ứng với 4 nhóm tình huống chính:

1. ⚔️ Nhóm Diễn Biến Trận Đấu

Bot theo dõi sát sao từng nước đi trên bàn cờ để châm chọc kỹ năng của bạn:

2. ⏳ Nhóm Trạng Thái Chờ & Treo Máy

3. 💬 Nhóm Bắt Bài Tương Tác & Tâm Lý

Đây là phần thú vị nhất khi Bot bắt bài các thói quen vô thức của người chơi qua chuột và bàn phím:

4. ⚙️ Nhóm Ngữ Cảnh Thời Gian Thực & Hệ Thống

Bot nắm rõ cả thời gian thực tế bên ngoài đời thực của bạn để "nói trúng tim đen":


🧠 Hậu trường kỹ thuật & Động cơ AI

Về mặt công nghệ, GoMockU được xây dựng trên bộ tech stack khá gọn gàng:

Thành phần Công nghệ sử dụng Mục đích
Giao diện SolidJS + Tailwind CSS v4 Render siêu nhanh, Fine-grained reactivity không tốn chi phí Virtual DOM
Runtime & Build Bun + Vite v8 Tốc độ cài package và build ứng dụng cực nhanh
Động cơ AI Minimax + Alpha-Beta + Zobrist Table Tìm kiếm sâu nước cờ tối ưu, lưu bảng băm 150.000 trạng thái với phép XOR $O(1)$
Đa luồng Web Workers Đẩy toàn bộ tính toán nặng sang background thread
Âm thanh Procedural Web Audio API Tự tổng hợp sóng âm cho tiếng cờ, đồng hồ... không cần tải file MP3

🎯 Lời kết

GoMockU là một dự án cá nhân mang lại cho mình rất nhiều niềm vui khi làm, từ việc tối ưu từng mili-giây cho thuật toán Minimax, viết bộ sinh map cờ thế ngẫu nhiên đến việc thiết kế hàng loạt sự kiện tương tác phong phú để biến con bot thành một "đại kình địch" độc mồm thực sự.

Nếu bạn muốn ôn lại kỷ niệm tuổi thơ với cờ Carô hoặc thử sức leo tháp với những con bot "gáy bẩn", hãy ghé qua chơi thử nhé!