我想知道处理具有关系的复杂结构的最佳方法是什么?
我正在为我的项目实现一个星系生成算法,基本上我有简单的枚举
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()
关于如何实现/表示此功能的任何建议,因为显然仅枚举是不够的?:)