注:ここでコーディングのヘルプは必要ありませんProgrammers
。理由があります。Javaの(単なる)理解ではなく、プログラムの計画/作成スキルを向上させたい。
ここでこのLARPゲームのスキルに基づいて、任意のカテゴリシステムを持つツリーを作成する方法を見つけようとしています。私の以前の試みは、スキルがカテゴリーでもあったかどうかについては愚かでした。それをコーディングしようとするのは面倒でした。自分のツリーを描くと、自分の「葉」だけがスキルであることに気付き、他のカテゴリにはカテゴリとしてラベルを付けました。
私が望んでいるのは、モデルとビューを分離しようとするツリーを作成し、任意の親に任意のタイプの子ノードを(編集/レンダリングの別の方法で)追加できるようにする方法です。
NBここにあるものはすべて、財産のように思える場合でも、スキルとして購入されます。エンドユーザーは、これを購買スキル(紙のATMで行う)と見なすため、同じページにすべて表示する必要があります。
ツリーの説明:ツリーは、ハードコードされた最高レベルのカテゴリ(武器、物理的および精神的、医療など)のセットで「生まれ」ます。このことから、ユーザーはスキルを追加できる必要があります。最終的に、彼らは「片手剣専門化」スキル(アイテムではない)を追加したいと考えています。そのためにはWeapons
、選択One-handed
した状態で「追加」をクリックし、その子に表示されるコンボボックスノードから選択し、もう一度追加をクリックして、表示されるその子ノードのテキストフィールドに名前を入力します。次に、もう一度追加をクリックして、そのリーフの「レベル」または「ティア」を追加/指定します。最初に習熟し、次に専門化(例えば)。
もちろん、別のスキルを購入する場合は、リーフへの完全に異なるルートです。武器の例で行ったように、ツリーの同じレベルにコンボボックスは必要なく、その背後にある他のロジックも必要になる場合があります。これは、プログラミングは言うまでもなく、頭を悩ませている問題です。一連のクラスを作成し、それらをどの順序でアタッチするかを指定せずに、すべてを適合させる方法。
この種のツリーをコードで記述するのに適したシステムは何ですか?私が見た他のすべてのJTreeの例には、予測可能なパターンがありますが、私の場合はそうではありません。これをすべて「リテラル」でコーディングする必要はありません。どのタイプ(コンボボックス、テキストフィールドなど)の子ノードの長いリストをどの親で許可する必要があります。抽象クラスを使用する必要がありますか?インターフェース?
上にリストされていない、異なる動作をする他のスキルを追加するときに、この種のオブジェクトのクラスターを拡張可能にするにはどうすればよいですか
使用する適切なシステムがない場合、この種のことを行う方法を決定するための適切なプロセスはありますか?
私の頭の中の歯車が回っています:
私はいつもする必要があります:
- 親を確認する
- 親に基づいてオプションを提供する
私はこの共通性のskill
ために、スキルとカテゴリの一般的なメソッドを定義/概説する何らかの抽象/インターフェイスクラスが必要だと考え始めています。(できれば)ルールとオプションをデータベースに入れて、そこから読み込めます。問題は、抽象メソッドまたはインターフェイスメソッドと、それを実装する方法との間の問題です。