论开发什么程序,尤其是类似纸牌类游戏和拼图类,以及俄罗斯方块之类的游戏,随机数发生器是必不可少的。标准c语言里面有seed()和rand()用来生成种子和数值
在symbian平台下面,用什么方法呢?下面就是一个例子
TTime theTime( KAknExNoteInitializeTime );
theTime.UniversalTime();
TInt64 randSeed( theTime.Int64() ); // 采用时间初始化随机数种子
TInt number( Math::Rand( randSeed ) % KAknExNoteRandomNumberRange );
// 这里就是调用了
生成的结果放在number中。
计算机所产生的随机数并不是真正的随机,而是通过一定的算法而生成的一个数字,这个道理是在任何一本程序语言教科书里都能找到的。想产生不同的随机数就要置不同的随机种子,而为了让程序每次运行的结果不尽相同,一般都将随机种子置为当前时间之类。
对于随机数的生成,仅仅是将一个差别很小的数进行不断的放大而已,比如4和5仅仅相差1个,如果放大10倍就相差10,对于计算机来说,当算法一定的时候,初始条件相同的话就会产生相同的结果,因此即使是Math::Random()也是有可能产生两个相同的随机数的,但就概率方面来说几率是非常小的,而对于Math::Rand(TInt64 &aSeed)来说,由于种子和算法在刚开始就被确定的,因此相同的种子可以产生相同的随机数,从而达到再现的结果。对于Math::Random()可能使用的是CPU时钟作为随机数种子,我个人这么认为,至于真实情况,我认为没太大必要讨论的那么清楚。
我就不知道layout=ENumberlayout; 这里是不是代表我输入的数字已经转成整形了? 如果不是那么具体的字符串转整形杂弄啊。
我RSS里输入的数字怎么和这个随即数里面的范围联系起来呢? 然后是显示出“”+“”=“?”的 我又不知道从哪入手了
对于弹出对话框对话框的处理可以参考SDK中 Series 60 SDK for Symbian OS Query control example, 另外对于对话框,如果你需要的话,我可以发一个关于对话框操作的文档给你.