2016-09-17 70 views
0

我正在製作一個基於類型隨機生成星星的系統。第一部分當然是告訴系統基於罕見的是什麼類型的明星。我很難縮短基於隨機數發生器的實際分配部分。這是我目前的解決方案。如何縮短這些值檢查?

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++; 
          } 
         } 
        } 
       } 
      } 
     } 
    } 
} 

回答

2

預壓通過打破第一假條件與值和環路中的陣列:

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++; 
}