Làm thế nào để tạo ra một AI hợp lý?


11

Tôi đang tạo một trò chơi logic dựa trên trò chơi Fox and Hound. Người chơi đóng vai con cáo và AI đóng vai chó săn. (theo như tôi có thể thấy) Tôi đã xoay sở để làm cho AI trở nên hoàn hảo, vì vậy nó không bao giờ thua cuộc. Để nó như vậy sẽ không có nhiều niềm vui cho người chơi.

Bây giờ, tôi phải hạ thấp AI để con người có thể chiến thắng, nhưng tôi không biết làm thế nào. Logic AI hiện tại dựa trên khớp mẫu - nếu tôi giới thiệu các bước di chuyển ngẫu nhiên làm cho bảng vượt ra khỏi không gian mẫu, AI có thể sẽ chơi câm cho đến khi kết thúc trò chơi.

Có ý tưởng nào làm cho AI câm lặng theo cách không đi từ "thiên tài" sang "hoàn toàn câm" trong một động tác không?


Vì vậy, bạn đã tìm thấy và thực hiện chiến lược tối ưu, luôn luôn chiến thắng. Tại sao không chuyển sang các trò chơi phức tạp hơn một chút bây giờ? Hoặc, điều gì về một thách thức: Thực hiện một chiến lược luôn thua , bất kể người chơi khác làm gì. Xem thêm: Mất cờ / Antichess
Martin Sojka

Có lẽ bạn muốn xem câu trả lời của tôi cho câu hỏi khác này: gamedev.stackexchange.com/questions/12858/ chủ
Tyn

Cáo và chó săn không phức tạp như cờ vua. Một bước đi sai và AI thua chắc chắn. Thật dễ dàng để làm cho AI trông thật ngu ngốc. Việc tôi giải quyết nó bằng bút và giấy và hàng giờ suy nghĩ chiến lược, không có nghĩa là các cầu thủ của tôi sẽ làm như vậy.
Milan Babuškov

Câu trả lời:


7

Nhiều triển khai có thể dẫn đến một cơ hội có trọng số ngẫu nhiên cho các bước di chuyển - giả sử, một cơ hội để thực hiện một bước đi tối ưu và một cơ hội để thực hiện một động thái dưới mức tối ưu. Xác định mức độ di chuyển dưới mức tối ưu có thể là một vấn đề rất khó khăn, nhưng cũng sẽ khiến AI của bạn đưa ra quyết định có vẻ thông minh hơn nhiều.

Lưu ý quan trọng: Bất kể cài đặt khó khăn, có lẽ sẽ là một ý tưởng tồi khi AI vượt qua cơ hội để ngay lập tức giành chiến thắng trong trò chơi. Nếu có khả năng thực hiện một động thái sẽ kết thúc trò chơi theo lượt đó, thì nó luôn luôn phải được thực hiện. Nếu không, nó sẽ phá hủy hoàn toàn ấn tượng của người chơi về cách AI hoạt động.


Cảm ơn. Tôi quyết định để nó chơi thông minh cho tất cả các mẫu đơn giản. Có hai mẫu phức tạp mà đường dẫn đến tự do của người chơi không dễ nhìn thấy, vì vậy tôi đã tạo ra các mẫu bổ sung khiến AI thua cuộc bằng cách chơi các động tác giống với người chơi mới làm quen ở vị trí như vậy. Khi bắt đầu trò chơi, tôi ngẫu nhiên chuyển đổi mô hình chiến thắng với việc mất một cho các vị trí như vậy.
Milan Babuškov

10

Vì đây có vẻ là một trò chơi 'giải quyết', câu trả lời duy nhất là máy tính phải thực hiện các động tác xấu có chủ ý.

Một giải pháp nhanh chóng có thể là tính toán nước đi tốt nhất, sau đó cũng tính một động thái hợp pháp khác có thể không tốt lắm. Đánh giá độ khó của AI sẽ được đo bằng tỷ lệ phần trăm cơ hội mà nó chọn cho người khác không di chuyển tốt, qua bước di chuyển hoàn hảo.

  • Khó khăn - 90% di chuyển tốt
  • Cứng - 70% di chuyển tốt
  • Bình thường - 50% di chuyển tốt
  • Đơn giản - 20% di chuyển tốt
  • Bị đánh rơi khi còn nhỏ - <5% di chuyển tốt
  • Hotdog - Tất cả ngẫu nhiên

10
Đây có lẽ là một ý tưởng tốt, nhưng bạn sẽ kết thúc với một AI chậm phát triển nếu nó cố tình thực hiện các động tác sai. Ra khỏi đỉnh đầu, trước tiên tôi sẽ thực hiện một động tác cho các động tác "hợp pháp", sau đó áp dụng trọng lượng cho từng động tác và sắp xếp chúng theo trọng lượng, trọng lượng cao nhất là động tác tốt nhất. Sau đó, bạn có thể thực hiện RNG hội tụ theo hướng di chuyển tốt hơn tùy thuộc vào độ khó.
Jonathan Connell

4
Tôi đồng ý với @Jonathan Connell. Hãy xem xét: ẩn đằng sau các thùng và ẩn đằng sau các thùng thuốc nổ và ẩn giữa các thùng và một quả lựu đạn đang hoạt động. AI nên đánh giá mức độ di chuyển tồi tệ như thế nào , với AI tốt hơn làm cho việc di chuyển tốt hơn thường xuyên hơn. Một AI sẽ không tuyệt vời hay khó khăn nếu 70% thời gian nó bắn bạn và 30% thời gian nó tự nổ tung. Nó sẽ chỉ vui nhộn.
doppelgreener

2
@Adrian Seeley Nhận xét cuối cùng của bạn thực sự chạm đến vấn đề lớn nhất; đối với tôi, một con người chơi với AI sẽ luôn tìm thấy một lý do đằng sau những lựa chọn của nó ngay cả khi về mặt lý thuyết là hoàn toàn ngẫu nhiên. Trong một trò chơi bảng chẳng hạn, điều này có thể được chống lại bằng cách giới hạn số lần lặp trong dự đoán di chuyển, vì vậy có lẽ đây có thể là một giải pháp tốt trong một trò chơi có thể giải được?
Jonathan Connell

2
Tôi đồng ý với cả Jonathans, nhưng tôi đưa ra câu trả lời +1 này cho 'Đã bị đánh rơi khi còn nhỏ' và 'Hotdog'
thedaian

2
@Jonathan Connell: Bạn nên đăng đề xuất / giải pháp của mình dưới dạng câu trả lời. Nó sẽ xứng đáng với một số upvote.
bummzack
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.