関係のある複雑な構造を処理するための最良の方法は何でしょうか?
私は自分のプロジェクトに銀河生成アルゴリズムを実装しています。基本的には、次の単純な列挙型があります。
GalaxySize { Small, Medium, Large };
GalaxyAge { Young, Mature, Ancient};
StarTypes { Black = 1, White = 3, Yellow = 1, Red = 3 };
これまでのところ、GalaxySizeの値によって制限された星を生成しています。次に、StarTypesからランダムにタイプを取得し、このタイプからスターを作成します。私がやりたいのは、StarTypesとGalaxyAgeの関係です。
つまり、若い銀河では(たとえば)黄色と白の星の可能性が高くなり、古代の銀河では黒と赤の星の可能性が高くなります。
私が考えているのは、StarTypeが「ロール」され、GalaxyAgeに応じて修飾子を追加する基本的なチャンスがあることです。これにより、特定の銀河時代でより一般的な星が増えます。
Example: weight (chance) of a white star in young galaxy is 3 base + 3
from the "young" galaxy age modifier
against the weight of a red star which has 3 base + 1 from the "young" modifier.
Resulting in:
White star type weight = (3 + 3 ) * rand.nextDouble()
Red star type weight = (3 + 1) * rand.nextDouble()
明らかに列挙型だけでは十分ではないため、この機能を実現/表現する方法に関する提案はありますか?:)