Tôi đang làm việc trên một trò chơi chiến thuật theo lượt trong Java (trong khung công tác Android). Theo cấu trúc trong Bắt đầu trò chơi Android, tôi có một chuỗi kết xuất và một chuỗi giao diện người dùng. Chuỗi hiển thị liên tục cập nhật trạng thái thế giới và sau đó vẽ lại thế giới. Khi người dùng tương tác với màn hình, GUI sẽ gửi các hành động tới thế giới (mẫu lệnh). Bây giờ tôi đang thêm người chơi AI và đây là kế hoạch của tôi:Tôi nên xử lý giao tiếp giữa các luồng AI và vòng lặp trò chơi chính như thế nào?
Mỗi trình phát AI sẽ có AI chạy trên một chuỗi riêng biệt.
Khi thế giới cập nhật trên lượt AI, nó sẽ kiểm tra xem có hành động đang chờ xử lý hay không. Nếu vậy, nó thực hiện nó. Sau đó, nó yêu cầu người chơi AI cho hành động tiếp theo của nó.
Trình phát AI sẽ gửi yêu cầu cho một hành động đến luồng AI và sau đó quay lại.
Cuối cùng, AI sẽ đưa ra một hành động và đăng nó trở lại thế giới, nó sẽ thấy nó trên bản cập nhật tiếp theo.
Hai câu hỏi:
1) Thiết kế này có vẻ hợp lý không?
2) Làm thế nào để xử lý thông tin liên lạc đến và đi từ luồng AI? Nếu tôi có chuỗi AI gọi world.queueAction (action), có vẻ như nó sẽ hoạt động, nhưng nếu thread render gọi ai.chooseAction (thế giới) sẽ chạy hành động chọn trên chuỗi render, đó không phải là thứ tôi muốn .
Bạn không làm logic thế giới trong chuỗi hiển thị, đúng không? – BRFennPocock