Lütfen dikkat: Burada kodlama yardımı istemiyorum, Programmers
bir nedenden dolayı varım . Program planlama / yazma becerilerimi geliştirmek (sadece) Java anlayışımı geliştirmek değil .
Bu LARP oyun için listelenen becerilerine dayalı keyfi bir sınıflandırma sistemi vardır bir ağaç, nasıl anlamaya çalışıyorum burada . Önceki girişimim, bir becerinin de bir kategori olup olmadığı konusunda bir bool vardı. Kodlamayı denemek dağınıktı. Ağacımı çıkarırken sadece 'yapraklar'mın beceri olduğunu fark ettim ve diğerlerini kategori olarak etiketledim.
Neyin peşindeyim, Modeli ve Görünümü ayırmayı deneyen ve keyfi bir ebeveyne arbiter tipte bir çocuk düğümü (ayrı bir şekilde düzenlenerek / işlenerek) eklenmesine izin veren bir ağaç oluşturmanın bir yoludur.
Not Buradaki her şey bir mülk gibi görünse bile bir beceri olarak satın alınır. Son Kullanıcılar bunu satın alma becerileri olarak görürler (kağıt atm'de yaptıkları), bu yüzden hepsi aynı sayfada sunulmalıdır.
Ağacın açıklaması: Ağaç, bir dizi sabit kodlanmış en üst düzey kategoriyle ( Silahlar, Fiziksel ve Zihinsel, Tıbbi vb.) 'Doğar' . Bundan, kullanıcının bir beceri ekleyebilmesi gerekir. Nihayetinde, örneğin 'Tek elle kullanılan Kılıç Uzmanlığı' becerisini ( eşya değil ) eklemek istiyorlar . Eğer ideal olan 'eklentiyi' tıklıyordunuz Bunu yapmak için Weapons
seçilen ve ardından seçmek One-handed
tekrar eklemek bir combobox düğümden o çocuk üzerinde görünür, daha sonra 'yi tıklayın ve bir metin alanına bir isim girin o çocuk düğüm olduğunu görünür. Ardından, o yaprak için bir 'düzey' veya 'katman' eklemek / belirtmek üzere tekrar ekle'yi tıklayın; önce uzmanlık, sonra uzmanlık (örneğin).
Tabii ki farklı bir beceri almak istiyorsanız, yaprak için tamamen farklı bir yoldur. Silah örneğiyle yaptığınızla aynı seviyede bir açılan kutuya ihtiyacınız olmayabilir ve arkasında başka bir mantığa da ihtiyacınız olabilir. Bu, programlama yapmama izin vermek için başımı döndürmekte sorun yaşıyorum; nasıl sınıflar kümesi yapmak ve değil birlikte bunları bağlamak için hangi sırayla belirtmek, ama yine de hepsini bir uyum var.
Bu tür bir ağacı kodda tanımlamak için iyi bir sistem nedir? Gördüğüm diğer tüm JTree örneklerinde tahmin edilebilir bir desen var ve benimki de yok . Ben tüm bu 'değişmez' kodlamak zorunda istemiyorum, ne tür (açılan kutu, metin alanı vb) çocuk düğümü hangi ebeveyn üzerinde izin verilmelidir uzun listeleri ile . Soyut dersler mi kullanmalıyım? Arabirimler?
Yukarıda listelenmeyen ve farklı davranan başka beceriler eklediğimde, bu tür nesneler kümesini genişletilebilir hale nasıl getirebilirim?
Yoksa değil kullanımına iyi bir sistem, bu tür bir şey yapmak nasıl çalışmak için iyi bir süreç var mı?
Kafamdaki dişliler dönüyor:
Her zaman yapmam gerek:
- Ebeveyni kontrol et
- Ebeveyne dayalı seçenekler sunun
skill
Beceri ve kategori için ortak yöntemleri tanımlayan / özetleyen bir tür soyut / arabirim sınıfına ihtiyacım var bu ortaklığın nedeni düşünmeye başladım . (Umarım) bir veritabanına kurallar ve seçenekler koyabilir ve oradan-okumak. Soru şu an, soyut veya arayüz yöntemi ile bunun nasıl uygulanacağı arasında düşünüyorum.