本文整理自网络,侵删。
最近做一个牌类游戏,采取了随机数来生成牌面,然后结果让人很是奇怪,结果出现了规律。不是没有采用randomize函数,以前知道这个函数是大概是根据本机的时钟等一系列的条件设置了下随机种子,于是在Sleep一个随机数。这样才没有了规律。不甘心,百度了下,发现确实是存在这个问题。所以推荐使用随机函数时这样用,特别是在一个循环里面生成n个随机数的时候(此时的规律很明显)
Function MyRandom(r:integer):Integer;
begin
randomize
sleep(random(10));
result:=random(r);
end;
相关阅读 >>
Delphi 结束360safe和360保险箱进程 for Delphi
更多相关阅读请进入《Delphi》频道 >>