Tôi đang phát triển một trò chơi chiến lược AI (nghĩ: Final Fantasy Tactics), và tôi gặp khó khăn trong việc thiết kế AI. Vấn đề chính của tôi là xác định đó là điều tối ưu để làm.
Trước tiên, hãy để tôi mô tả mức độ ưu tiên của hành động mà tôi muốn AI thực hiện:
Giết đơn vị người chơi gần nhất
Hoàn thành chỉ thị chính (tiêu diệt tất cả các đơn vị người chơi, tiêu diệt đơn vị mục tiêu, sống sót trong x lượt)
- Chữa lành vết thương đơn vị / bộ đệm đúc
Bây giờ AI có thể thực hiện các thao tác sau:
Di chuyển -> {Tấn công / Khả năng / Vật phẩm} (tấn công hoặc khả năng hoặc vật phẩm)
{Tấn công / Khả năng / Vật phẩm} -> Di chuyển
Tiến lại gần (nếu mục tiêu không nằm trong phạm vi)
- {Tấn công / Khả năng / Vật phẩm} (nếu không di chuyển)
Ghi chú
Khả năng có phạm vi / hiệu ứng / chi phí / hiệu ứng khác nhau. Mỗi đơn vị ai có thể có 5-10 khả năng để lựa chọn. AI sẽ ưu tiên tiêu diệt an toàn trừ khi chỉ thị của nó là tồn tại trong vòng x. Nó cũng không quan tâm đến khả năng chi phí nhiều. Mặc dù người chơi có thể muốn lưu một câu thần chú lớn cho lần sau, AI rất có thể sẽ sử dụng nó càng sớm càng tốt.
Di chuyển trên một lưới (hex)
số đơn vị người chơi: 3-6
num đơn vị ai: 3-7 trở lên. Có lẽ là tối đa 10.
AI và người chơi thay phiên nhau điều khiển MỘT đơn vị, thay vì tất cả cùng một lúc.
Nền tảng là Android (nếu chương trình không phản hồi sau một thời gian, sẽ có một cửa sổ bật lên nói với Force Quit hoặc Wait - trông rất tệ!).
Bây giờ đến câu hỏi:
Khả năng tốt nhất để sử dụng rõ ràng sẽ là thứ tấn công nhiều mục tiêu nhất để có nhiều sát thương nhất. Nhưng vì mỗi khả năng có phạm vi khác nhau, tôi sẽ không biết liệu chúng có trong phạm vi mà không khám phá từng địa điểm có thể mà tôi có thể di chuyển đến không.
Một giải pháp sẽ là đi qua từng địa điểm có thể để di chuyển đến, xác định cuộc tấn công tối ưu tại địa điểm đó - nơi cung cấp cho tôi danh sách các bước di chuyển tối ưu cho từng địa điểm. Sau đó, chọn các ra tối ưu của danh sách và thực hiện nó. Nhưng điều này sẽ tốn rất nhiều thời gian của CPU. Có một giải pháp tốt hơn?
Ý tưởng hiện tại của tôi là di chuyển càng gần càng tốt về phía nhóm người gần nhất, lớn nhất và xác định khả năng tấn công / khả năng tối ưu từ đó. Tôi nghĩ rằng điều này sẽ làm việc ít hơn cho CPU và vẫn cho phép các cuộc tấn công trên phạm vi rộng. Nó không tối ưu nhưng AI vẫn có vẻ 'thông minh'.
Ghi chú / câu hỏi khác:
- Tôi có suy nghĩ quá mức / quá phức tạp không? Giải pháp tốt hơn? Tôi mở tất cả các loại đề xuất
- Tôi đã xem xét câu hỏi về phép thuật , nhưng nó không tính đến chuyển động - vì vậy có lẽ nên sử dụng thuật toán đó cho từng vị trí di chuyển có thể? Câu trả lời hàng đầu đề cập rằng nó không tuyệt vời cho hiệu ứng khu vực và chiến đấu theo nhóm - vì vậy có lẽ cần phải điều chỉnh nhiều hơn?
- Xin vui lòng , nếu bạn đề cập đến một biểu đồ / cây, hãy cho tôi biết về cơ bản cách sử dụng nó. Ví dụ: Node có nghĩa là khả năng, cấp độ tương ứng với thiệt hại, sau đó tìm kiếm nút sâu nhất.