在同一标签中随机显示数组对象

时间:2012-07-18 13:24:18

标签: random nsmutablearray label

我正在开展一个包含10个问题和答案的项目。我正在使用touchesbegan,touchesmoved和touchesended方法。问题出现在一个标签中,并且答案在屏幕中有10个不同的标签。用户应该匹配它们,基本上这就是游戏。在touchesended方法中,我正在用if语句验证问题的结果和答案的位置,所以试着理解它是否是拖到正确位置的正确答案。

所以,我需要问这个问题;当用户给出正确答案时,问题应该改变。我在一个NSMutableArray上提出了问题,它为每个开头都有不同的随机顺序。如何在同一标签和文本中显示数组的其他对象。 (它应该是文本,因为之后还有另一个数字)以下是一些代码的示例:

arr = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil];

srandom(time(NULL));
NSUInteger count = [arr count];
for (NSUInteger i = 0; i < count; ++i) {
    int nElements = count - i;
    int n = (random() % nElements) + i;
    [arr exchangeObjectAtIndex: i withObjectAtIndex:n];
}
Question.text = [NSString stringWithFormat:@"%ix1=", [[arr objectAtIndex:(random()%9)+1] intValue]];

在问题解决后,我需要带一个其他数字的数组。也不应该再次出现使用的数字。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

而不是

Question.text = [NSString stringWithFormat:@"%ix1=", [[arr objectAtIndex:(random()%9)+1] intValue]];

您需要先获取随机索引编号

int index = (random()%9) + 1;

然后

Question.text = [NSString stringWithFormat:@"%ix1=", [[arr objectAtIndex:index] intValue]];

接下来,您可以使用index删除NSMutableArray

中的相应对象
[arr removeObjectAtIndex:index];