Để giải trí, tôi đang cố gắng viết một trong những trò chơi hội đồng yêu thích của con trai tôi dưới dạng một phần mềm. Cuối cùng, tôi mong đợi xây dựng một giao diện người dùng WPF trên đó, nhưng ngay bây giờ tôi đang xây dựng một cỗ máy mô hình hóa trò chơi và các quy tắc của nó.
Khi làm điều này, tôi tiếp tục thấy những vấn đề mà tôi nghĩ là phổ biến đối với nhiều trò chơi trên bàn cờ và có lẽ những người khác đã giải quyết chúng tốt hơn tôi.
(Lưu ý rằng AI để chơi trò chơi và các mô hình xung quanh hiệu suất cao không thú vị với tôi.)
Cho đến nay mô hình của tôi là:
Một số loại bất biến đại diện cho các thực thể trong hộp trò chơi, ví dụ như xúc xắc, cờ caro, thẻ, bảng, khoảng trắng trên bàn, tiền, v.v.
Một đối tượng cho mỗi người chơi, chứa tài nguyên của người chơi (ví dụ: tiền, điểm số), tên của họ, v.v.
Một đối tượng đại diện cho trạng thái của trò chơi: người chơi, lượt của ai, cách bố trí các lựa chọn trên bàn cờ, v.v.
Một máy trạng thái quản lý trình tự rẽ. Ví dụ: nhiều trò chơi có một trò chơi nhỏ trước khi mỗi người chơi lăn để xem ai đi trước; đó là trạng thái bắt đầu. Khi lượt của một người chơi bắt đầu, đầu tiên họ lăn, sau đó họ di chuyển, sau đó họ phải nhảy tại chỗ, sau đó những người chơi khác đoán xem họ là giống gà gì, sau đó họ nhận được điểm.
Có một số nghệ thuật trước đây tôi có thể tận dụng không?
CHỈNH SỬA: Một điều tôi nhận ra gần đây là trạng thái trò chơi có thể được chia thành hai loại:
Trạng thái tạo tác trò chơi . "Tôi có 10 đô la" hoặc "tay trái của tôi màu xanh lam".
Trạng thái trình tự trò chơi . "Tôi đã tung cú đúp hai lần; lần tiếp theo khiến tôi phải ngồi tù". Một cỗ máy trạng thái có thể có ý nghĩa ở đây.
CHỈNH SỬA: Điều tôi thực sự đang tìm kiếm ở đây là cách tốt nhất để triển khai các trò chơi theo lượt nhiều người chơi như Cờ vua hoặc Scrabble hoặc Monopoly. Tôi chắc rằng mình có thể tạo ra một trò chơi như vậy bằng cách bắt đầu hoàn thành nó, nhưng, giống như các Mẫu thiết kế khác, có thể có một số cách để khiến mọi thứ diễn ra suôn sẻ hơn nhiều mà không rõ ràng nếu không nghiên cứu kỹ lưỡng. Đó là những gì tôi đang hy vọng.