我想让用户点击一个按钮,以“a +/- b = c”的形式生成一个10个问题的测验,其中a和b的值从+10到-10并且是随机的分配给十个问题。此外,问题应在加法和减法之间随机切换。如何正确填充plist文件?如何使用arc4random
用随机整数创建10个问题?
我认为在单列选择器中显示问题会很简单,用户可以在屏幕上滚动问题或只在CGPoint
处显示文字。
相反,我创建了一个包含84个不同问题的plist,我想从plist中随机选择10来创建每次用户点击按钮时的测验。到目前为止我有这个:
NSString *plistFile = [[NSBundle mainBundle] pathForResource:@"global" ofType:@"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsofFile:plistFile];
NSLog(@"%@",[dict objectForKey:@"1"]);
NSLog(@"%@",[dict objectForKey:@"2"]);
NSLog(@"%@",[dict objectForKey:@"3"]);
global是plist的名称,@"1"
,@"2"
,@"3"
等是我放入plist的84 diff Q的名称。如何随机选择84个NSLog中的10个?
答案 0 :(得分:2)
如果您的密钥只是数字,请使用NSDictionary
,而不是使用NSArray
。然后你可以做
NSString *randomString = [array objectAtIndex:(arc4random() % [array count])];
选择一个随机元素。
然而,如果它只是随机数的不同组合,我会真的建议不要在plist中查找它。手工写出所有这些组合只是浪费时间。这就是计算机的用途!
陈旧但仍然相关的答案:
要生成-10
和10
之间的随机数:
int a = (arc4random() % 21) - 10;
你也可以制作这样的函数:
int randomIntegerInRange(int min, int max)
{
int range = max - min + 1;
return min + arc4random() % range;
}