Cách làm trình mô phỏng đấu bài bằng AI: vì sao kết quả 12.480 ván vẫn đáng ngờ

Tìm dị thường
Cách dùng công cụ đọc

Nghe đọc bài thành tiếng. Đọc nhanh hiển thị lần lượt các cụm từ theo tốc độ bạn chọn. Luyện ngôn ngữ giúp đối chiếu các bản dịch hiện có. Lưu tạo dấu trang trong trình duyệt này; mở lại từ danh sách đã lưu của trình phát. Chơi kiểu phá gạch biến chữ trong bài thành những viên gạch để bạn phá.

Chia sẻ bài viết này

Chia sẻ bài viết này

Quảng cáo
Quảng cáo

Khi làm mô phỏng game thẻ bài, phản xạ đầu tiên thường là chạy thật nhiều trận. 100 thành 1.000, 1.000 thành 10.000, rồi một file CSV khổng lồ trông rất “khoa học”.

Nhưng bẫy lớn là: nếu policy chơi sai, tăng số trận chỉ giúp đo hành vi sai đó chính xác hơn.

Trong case study, engine luật cố định hoàn thành 12.480 trận và phần audit luật khá tốt, nhưng kết quả thô lại cực đoan: Royal khoảng 79,8%, Witch khoảng 25,6%. Điều đó không có nghĩa Royal ngoài đời có 80% win rate. Nó báo rằng policy chơi cần được xem lại.

Nguyên tắc đầu tiên: trước khi tăng số trận, hãy chắc rằng CPU thật sự biết chơi game.

1. Simulator không phải một AI duy nhất: tách luật, quyết định và chấm điểm

Ít nhất có ba lớp.

  1. Rules engine: xác định hành động hợp lệ và xử lý damage, target, evolution, effect.
  2. Play policy: chọn một hành động trong số hành động hợp lệ.
  3. Evaluator: đánh giá deck hoặc policy có thật sự tốt hay không.

Nếu trộn hết, khi số liệu lạ sẽ không biết do bug card, AI chơi dở, thiên lệch first player hay hàm điểm sai.

Vì vậy hãy test riêng tính hợp lệ, chất lượng quyết định và chất lượng đánh giá.

2. Làm rules engine trước: vật lý trước trí thông minh

Trước AI giỏi, cần một thế giới game nhất quán.

Engine phải xử lý deck legality, giới hạn số bản, class, PP, draw, mulligan, giới hạn board, attack, Ward/Storm/Rush, evolution, target, generated card, token, cơ chế đặc biệt và điều kiện thắng.

Mỗi card/cơ chế nên có trạng thái:

  • Full
  • Partial
  • Unsupported
  • Runtime gap

Nếu có card chưa hỗ trợ, dừng và báo rõ còn tốt hơn in ra “57,3% win rate” giả.

3. AI chơi không thể chỉ nhìn “nước mạnh nhất ngay bây giờ”

Game thẻ bài cần nhìn tương lai.

Policy phải cân nhắc board, hand, kế hoạch 1–3 turn, xác suất lethal, giá trị giữ combo piece, tài nguyên evolution, câu trả lời của đối thủ, nguy cơ cháy bài, chỗ trống board và win condition thay thế.

“Có gì chơi nấy, con nào to thì thả, đánh face được thì đánh” có thể khá ổn với deck tempo đơn giản. Nhưng với combo/control thì nhanh chóng sụp.

4. Kiến thức của người chơi nên là gợi ý, không phải nhà tù

Hard-code mọi bài guide thành if cứng nhắc chỉ tạo ra một con bot đọc sách.

Hãy biến kiến thức thành bonus, penalty và priority.

Ví dụ: tăng giá trị board clear khi gặp aggro, phạt dùng combo piece quá sớm, thưởng việc giữ evolution cho power turn, giảm overcommit trước turn phản công mạnh của đối thủ, tăng future value nếu có lethal sau 2–3 turn.

Tag kiến thức theo pack, format, leader, archetype, matchup, first/second, phase, ngày nguồn và confidence. Nếu các nguồn mâu thuẫn, giữ nhiều policy candidate.

5. A/B công bằng là cho hai AI làm cùng một đề thi

AI cũ brick còn AI mới high-roll thì không so sánh được.

Dùng cùng random seed rồi đổi first/second.

seed 001: AI cũ first / AI mới second
seed 001: AI mới first / AI cũ second
...

Ngoài thắng thua, ghi missed lethal, cháy bài, board kẹt, lãng phí evolution, dùng combo quá sớm, mulligan sai, bỏ qua counter-turn của đối thủ.

Để bắt đúng trường hợp: “thắng thật, nhưng vẫn chơi ngu.”

6. Vì sao 2.016 trận? Không phải số thần bí, chỉ là phép nhân

2.016 không có ý nghĩa thiêng liêng nào.

56 ô test matchup
× 18 seed
× 2 lượt pair đổi first/second
= 2.016 trận

Quan trọng là chọn coverage trước.

  • quick: vài chục đến vài trăm trận để smoke test;
  • standard: khoảng 2.000 trận cho policy A/B và matchup chính;
  • full: hơn 10.000 trận cho đánh giá toàn môi trường.

Chạy full trước rồi mới phát hiện AI dở là cách tốn kém để sản xuất rác cực kỳ chính xác.

7. Tối ưu deck không phải brute-force mọi tổ hợp 40 lá

Không gian quá lớn. Bắt đầu từ deck giải đấu/công khai rồi tạo candidate lân cận: đổi 1–3 card, chỉnh số lượng, thay card cùng vai trò, tech theo matchup, thay cả package.

Đừng chỉ tối ưu win rate trung bình. Cần nhìn downside risk, độ ổn định first/second và đáy của matchup xấu.

Cách nói đúng là: “deck tốt nhất trong số candidate đã đánh giá dưới card snapshot, policy, meta weight và simulation budget này.”

8. Chẩn đoán hữu ích hơn một con số win rate trần trụi

Với deck 40 lá và leader/archetype đối thủ, hệ thống nên trả về ước lượng + uncertainty, first/second, mulligan, mục tiêu early/mid/late, win condition, card nên giữ, removal priority, timing evolution, lượt phản công mạnh của đối thủ, lethal 2–3 turn, lỗi thường gặp, line thay thế và tech candidate.

Lúc đó simulator trở thành coach.

9. Sự cố Royal 79,8%: có lẽ “thả lính rồi đánh mặt” quá thân thiện với AI

Một giả thuyết vui nhưng hợp lý: deck đơn giản và chủ động dễ hơn nhiều với AI chưa trưởng thành.

Royal có thể:

thả follower!
chiếm board!
face trống!
đánh!
thắng!

Trong khi Witch dở có thể:

combo piece? dùng được bây giờ! dùng!
evolution? mạnh ngay! tiêu!
hand limit? không biết!
ba turn sau? để tôi của tương lai lo!

Đó không phải bằng chứng của meta thật. Nó cho thấy mỗi loại deck đòi hỏi mức năng lực suy nghĩ khác nhau từ AI.

10. Thiết kế để môi trường đổi vẫn chạy lại ngay: sản phẩm cuối là phòng thí nghiệm

Lưu rotation hiện tại thành environment có version.

Environment 8
- card snapshot
- legal card pool
- engine version
- policy version
- meta decks
- human knowledge
- simulation results

Khi pack mới ra, tạo environment tiếp theo và diff card mới, rotation out, balance, restriction, archetype mới, engine support và meta weight.

Nếu chỉ đổi meta weight, dùng lại matchup matrix và reweight. Nếu card mới vào deck, chỉ rerun phần bị ảnh hưởng. Nếu cơ chế mới chưa support, chặn promotion.

Điều quan trọng nhất là traceability: con số này được tạo bởi luật nào, policy nào, card DB nào, seed nào và environment nào?

Nếu Royal lại gần 80%, đừng đội vương miện ngay.

Hãy hỏi trước: con bot này có nghĩ cả game chỉ là “thả lính rồi đánh mặt” không?


Tìm hiểu sâu hơn: Giao hết cho AI mạt chược: ít đứng chót nhưng cũng khó về nhất

Quảng cáoSách về chủ đề này

  • It's All a Game (bản tiếng Anh)

    Tristan Donovan / Thomas Dunne Books / 2017

    Sách về board game, lĩnh vực của bài viết này.

Bài viết này có liên kết tiếp thị (quảng cáo). Về quảng cáo As an Amazon Associate I earn from qualifying purchases.

Hôm nay đọc bài này

Mỗi bài trả lời một câu hỏi mà người đọc bài này thường đặt ra tiếp theo.

Xem tất cả bài viếtThêm bài về Trò chơi thẻ bài và board game

Chia sẻ bài viết này

Nếu bài viết này hữu ích, bạn có thể ủng hộ trang. Ủng hộ

Quảng cáo
Quảng cáo
Quảng cáo

Thêm một bài nữa? Có gì vui không?

Đọc xong rồi thì xem tiếp: vài bài gần chủ đề và vài bài khác hẳn nhưng thú vị.

  1. Gần chủ đềGã Rumpelstiltskin nhảy múa xuất hiện trong phim nào?Cuộn VHS không hề tồn tại
  2. Minecraft chui vào Elden Ringgame ghép bằng AI có chơi thật được không?
  3. Khác hẳn, nhưng thú vịTrend 1.000 Little Things trên TikTok là gì?Có cần kể đủ một nghìn điều không?
  4. Unaju và unadon khác nhau thế nào?Tại Hasebe ở Okazaki, câu trả lời là nhiều lươn hơn 1,5 lần — cộng thêm chiếc khăn oshibori nóng đến vô lý
  5. 1.208 lượt hiển thị kiếm $0,11, còn 39 lượt kiếm $0,80tại sao?
  6. 5 giờ sángcơ thể bảo “ngủ đi”, não bảo “vẫn đang mở cửa”

Tìm bài viết khác

Tất cả bài viết

Mendoi-chan

Người vận hành trang

Mendoi-chan

Biến những vướng mắc trong công việc và đời sống hằng ngày thành cấu trúc rõ ràng và bước tiếp theo thực tế.