0

我使用以下代码从我的rand_btns NSMutableArray 中隐藏一个 UIButton。

int random = arc4random_uniform ([rand_btns count]);

if (random != level - 1) {
    [[rand_btns objectAtIndex:random] setHidden:YES];
} else {
    // call again this method
}

它工作得很好,但是......它重复了。如何停止重复或检查我的 rand_btns 数组中的 UIButton 是否被隐藏,不需要再次包含此 objectAtIndex。

我的意思是,如果使用我的代码,我可以从我的数组中隐藏随机按钮,除了特定的 objectAtIndex。

我不想重复来自int random的 NUMBER

4

3 回答 3

2

你可以参考这个Non-repeating arc4random_uniform。如果你想检查你的按钮是否已经隐藏,你可以检查button.hidden属性。

于 2013-08-20T20:41:22.500 回答
2

如果您想要一个不重复的随机数字序列,一种方法是用连续数字填充数组,然后打乱列表,使数字随机排序。这样,您知道每个数字只出现一次,但您无法预测数字出现的顺序。

于 2013-08-20T20:46:13.487 回答
1

随机数可以重复,因为它们是随机的。您可能需要保存一份到目前为止已为您提供的随机号码的列表,当您想要一个新号码时,请继续尝试,直到您得到一个不在您的列表中的号码。另请注意,如果您正在寻找一个到目前为止还没有的数字,那么迟早您将陷入无限循环,因为最终在您想要的范围内将不再有“免费”数字

于 2013-08-20T20:44:03.037 回答