2012-07-18 64 views
0

我的工作,其中包括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]]; 

我需要把解决问题后的数组的其他号码。另外使用的号码不应该再出现。

谁能帮助?

+0

为什么不选中它后一次,下一次随机从剩余的对象选择从数组中删除的对象? – xvatar 2012-07-18 15:56:21

+0

这正是我要问什么。他们随机出现,我真的很困惑如何删除该随机对象,因为我不知道哪一个。我真的被这个代码困住了,也许它太简单了,但是你能帮我看一下示例代码吗? – user5894322345 2012-07-18 16:10:36

回答

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];