我试图制作一个关于在游戏结束时奖励给玩家的金额的方法的小程序。到目前为止,我已经使用RNG来模拟一轮游戏中发生的事情但是已经卡住了。我想知道如何设计我的代码,以便在第二次从RNG生成相同的数字时做一些不同的事情。
while (active==1)
{
random=rand()%11+1;
if (random==11)
{
bomb=1;
}
}
感谢您的回复:)
答案 0 :(得分:0)
保留(数量,计数)对的地图:
std::unordered_map<int, std::size_t> number_frequencies;
while (active) {
int number = random_number();
++number_frequencies[number];
if (number_frequencies[number] == 2) {
// do something
} else {
// do something else
}
}
答案 1 :(得分:-2)
首先,为清楚起见,请应用以下内容:
MAX
定义为您想要的最大值(例如,11)random
和0
之间使用MAX-1
(而不是在1
和MAX
之间然后,您可以尝试根据您的要求调整以下代码:
#define MAX 11
...
int count[MAX] = {0};
while (active == 1)
{
random = rand()%MAX;
count[random]++;
...
}
count
数组表示每个random
值生成的次数。
因此,在每次迭代时,您都可以使用count[random]
来选择要采取的操作。