夥計們當我運行它時,我遇到了這個非常奇怪的錯誤。這是重要的代碼:C++ Rnd()錯誤
變量(編輯):
const short int maxX = 100;
const short int maxZ = 100;
const short int lakeChance = 0.9;
addLake功能(編輯):
void addLake(Sect sector[][maxZ], int x, int z){
sector[x][z].setMaterial(1);
}
主要來源(編輯):
//Generating land mass
for (int x = 0; x < maxX; x++){
for (int z = 0; z < maxZ; z++){
//Default material
sector[x][z].setMaterial(0);
//Add lake/sea source
int r = rand();
float r1 = (r % 1000);
float r2 = r1/1000;
if (r2 <= lakeChance) addLake(sector, x, z);
}
}
錯誤在於,無論我改變'lakeChance'的值,結果都是完全一樣的。儘管我將lakeChance的值更高(即:0.5,0.7,0.9),但addLake函數在每次啓動時似乎被稱爲大約3到6次。只有在我將'lakeChance'的值更改爲1時纔會調用該函數。隨機數生成器可以很好地工作,因此結果每次都會有所變化。
這是一個很棒的時間來產生一個[簡短,自包含,可編譯,正確的例子](http://sscce.org/) –
我知道我會後悔問這個,但變量是哪裏'傳入'sector'聲明/分配? – WhozCraig
您在執行程序期間多久運行一次主源?也就是說,有多少次嘗試是「3到6次」的數字? –