1
我有一些舊遊戲DopeWars的源代碼,我試圖將它轉換爲OO Python以獲得一些有趣的練習。SysRandom在C中的含義
我想弄清楚他們用來生成不同藥物的半隨機價格的算法。
這是相關代碼的副本。
static void makeDrugPrices (int leaveout)
{
int i, j;
drugPrices [0] = 1000 + SysRandom (0) % 3500;
drugPrices [1] = 15000 + SysRandom (0) % 15000;
drugPrices [2] = 10 + SysRandom (0) % 50;
drugPrices [3] = 1000 + SysRandom (0) % 2500;
drugPrices [4] = 5000 + SysRandom (0) % 9000;
drugPrices [5] = 300 + SysRandom (0) % 600;
drugPrices [6] = 600 + SysRandom (0) % 750;
drugPrices [7] = 70 + SysRandom (0) % 180;
for (i = 0; i < leaveout; i++)
{
j = SysRandom (0) % 8;
drugPrices [j] = 0;
}
}
唯一的問題是我無法在任何地方在線找到SysRandom的任何文檔。它在代碼中使用的唯一其他地方與此處使用的方式完全相同。似乎沒有任何實例或引用涉及SysRandom的任何外部代碼。
我對C不是很熟悉,所以有可能我錯過了一些東西。如果你想要整個源代碼,我可以提供。
謝謝。
也許所有的SysRandom()都會返回一個隨機數字0作爲它的種子? –
我的猜測是它調用rand(),其中參數是最大範圍,除非參數爲0,則使用默認值。 – this
它看起來像返回一個32位隨機數。操作'SysRandom(0)%3500'的結果是一個介於0到3500之間的隨機數。在過去的日子裏,C函數rand()只在Windows上產生一個16位的隨機數,所以在大多數應用中它是沒有用的。 – markgz