Xin lưu ý: Tôi không muốn trợ giúp về mã hóa ở đây, Programmers
vì một lý do. Tôi muốn cải thiện kỹ năng lập kế hoạch / viết chương trình chứ không phải (chỉ) sự hiểu biết của tôi về Java .
Tôi đang cố gắng tìm ra cách tạo một cây có hệ thống thể loại tùy ý, dựa trên các kỹ năng được liệt kê cho trò chơi LARP này tại đây . Nỗ lực trước đây của tôi đã có một bool cho dù một kỹ năng cũng là một thể loại. Cố gắng để mã xung quanh đó là lộn xộn. Rút ra cây của tôi, tôi nhận thấy rằng chỉ có 'lá' của tôi là các kỹ năng và tôi đã gắn nhãn cho các loại khác là các danh mục.
Những gì tôi đang theo là một cách để tạo một cây cố tách Mô hình và Chế độ xem và cho phép thêm một loại nút con tùy ý (với một cách riêng biệt được chỉnh sửa / kết xuất) cho cha mẹ tùy ý.
NB Tất cả mọi thứ ở đây được mua như một kỹ năng, ngay cả khi nó có vẻ như là một tài sản. Người dùng cuối sẽ xem đây là kỹ năng mua hàng (mà họ làm trên giấy atm) vì vậy nên được trình bày như vậy, tất cả trên cùng một trang.
Giải thích về cây: Cây được 'sinh ra' với một tập hợp các loại cấp cao nhất được mã hóa cứng ( Vũ khí, Vật lý và Tâm thần, Y tế và hơn thế nữa, v.v.). Từ đó người dùng cần có khả năng thêm một kỹ năng. Cuối cùng, họ muốn thêm kỹ năng 'Chuyên môn kiếm một tay' ( không phải vật phẩm). Để làm như vậy bạn sẽ lý tưởng nhấp vào 'add' với Weapons
lựa chọn và sau đó chọn One-handed
từ một nút combobox xuất hiện trên con đó, rồi bấm thêm một lần nữa và nhập tên trong một lĩnh vực văn bản trên mà nút con xuất hiện. Sau đó bấm thêm lần nữa để thêm / chỉ định 'cấp' hoặc 'cấp' cho lá đó; thành thạo đầu tiên, sau đó chuyên môn hóa (ví dụ).
Tất nhiên, nếu bạn muốn mua một kỹ năng khác, đó là một con đường hoàn toàn khác với chiếc lá. Bạn có thể không cần một hộp tổ hợp ở cùng cấp với cây như bạn đã làm với ví dụ về vũ khí, và cũng cần một số logic khác đằng sau nó. Đây là những gì tôi gặp khó khăn khi phải suy nghĩ về việc lập trình; làm thế nào để tạo một tập hợp các lớp và không chỉ định thứ tự để gắn chúng lại với nhau, nhưng vẫn có tất cả chúng phù hợp.
Một hệ thống tốt để mô tả loại cây này trong mã là gì? Tất cả các ví dụ JTree khác mà tôi đã thấy có một số mẫu có thể dự đoán được và tôi thì không . Tôi không muốn phải viết mã tất cả bằng 'chữ', với các danh sách dài về loại (hộp tổ hợp, trường văn bản, v.v.) của nút con nên được cho phép trên cha mẹ. Tôi có nên sử dụng các lớp trừu tượng? Giao diện?
Làm thế nào tôi có thể làm cho loại cụm đối tượng này có thể mở rộng khi tôi thêm vào các kỹ năng khác không được liệt kê ở trên mà hành xử khác nhau?
Nếu có không một hệ thống tốt để sử dụng, là có một quá trình tốt để làm việc ra làm thế nào để làm việc này?
Các bánh răng trong đầu tôi đang quay:
Tôi luôn cần phải:
- Kiểm tra phụ huynh
- Cung cấp tùy chọn dựa trên cha mẹ
Tôi đang bắt đầu nghĩ rằng vì sự phổ biến này, tôi cần một số loại skill
lớp trừu tượng / giao diện xác định / phác thảo các phương thức phổ biến cho kỹ năng và thể loại. Tôi có thể (hy vọng) đặt các quy tắc và tùy chọn trong cơ sở dữ liệu và đọc từ đó. Câu hỏi là tôi nghĩ bây giờ, giữa một phương pháp trừu tượng hoặc giao diện và làm thế nào để thực hiện điều đó.