我正在建立一个系统,根据类型随机生成恒星。第一部分当然是告诉系统,它是基于稀缺性的恒星类型。我很难缩短基于随机数发生器的实际分配部分。这是我目前的解决方案。
void StarTypeGen () {
randomGen (x: 0, y: 229000);
if (Rng <= 228000) {
StarType++;
if (Rng <= 36000) {
StarType++;
if (Rng <= 22500) {
StarType++;
if (Rng <= 9000) {
StarType++;
if (Rng <= 3750) {
StarType++;
if (Rng <= 1875) {
StarType++;
if (Rng <= 10) {
StarType++;
}
}
}
}
}
}
}
}发布于 2016-09-17 20:13:00
使用值预加载数组,并在第一个假条件下中断循环:
int[] nums = new int[] { 228000, 36000, 22500, 9000, 3750, 1875, 10 };
for (int i = 0; i < nums.Length; i++)
{
if (Rng > nums[i]) break;
StarType++;
}https://stackoverflow.com/questions/39551180
复制相似问题