【发布时间】:2014-04-12 17:19:41
【问题描述】:
我使用 srand(SEED) 为我的随机数生成器播种一次,其中 SEED 只是一个 16 位数字,由按下按钮的时间长短生成。我的随机数生成器工作得很好,但我需要能够提前看到序列中接下来的四个数字,如果有意义的话,不会破坏任何东西。
所以,我通过以下方式获得序列中的下一个数字:
num = rand() % 4;
这给了我一个介于 0 和 3 之间的随机数,这很棒。假设前 6 个数字是 0 3 2 1 2 3,而我刚刚生成了该序列中的前 3 个。接下来的四个数字是 2,1,2,3。我希望能够获取这些数字并显示它们,但是再次调用 rand() 会破坏原始序列(顺便说一下,这是针对 SIMON 游戏的。一种作弊模式,用于查看接下来要按的内容)。
调用 srand(SEED) 会让我回到 first 数字,所以我可以轻松地看到序列中的前四个数字而不会破坏任何东西,但是如果我想看到数字 x -> x + 4,那就搞砸了。
【问题讨论】:
-
听起来您需要某种缓冲区(可能是circular buffer?)。