2011-08-31 55 views
1

我希望用戶點擊一個按鈕以「a +/- b = c」的形式生成十問題測驗,其中a和b的值來自+ 10到-10,隨機分配10個問題。另外,問題應該隨機地在加法和減法之間切換。我如何正確填充plist文件?如何使用arc4random創建十個隨機整數問題?使用plist爲測驗創建隨機整數

我認爲將問題顯示在單列選取器中,用戶可以滾動查看問題或只是在屏幕上的某個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"]); 

全球的plist中,@"1"@"2"@"3"等的名稱是84 DIFF Q的,我把plist中的名稱。我如何隨機選擇84個NSLog中的10個?

+2

什麼的plist必須處理任何事情? –

+0

如果我這樣做?我創造了一個plist; key1 =(+10)+(+10),key2 =(+10)+(+9),key3 = etc ...這將創建84個不同的可能的問題,所以現在我想隨機選擇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」]); – user908462

回答

2

而不是使用NSDictionary,如果您的密鑰只是數字,請使用NSArray。你可以做

NSString *randomString = [array objectAtIndex:(arc4random() % [array count])]; 

挑一個隨機元素。

然而,我會反對在plist中查找它,如果它只是不同的隨機數字的組合真的建議。用手寫出所有這些組合只是浪費時間。這就是電腦的用途!

舊,但仍相關答案:

要生成-1010之間的隨機數:

int a = (arc4random() % 21) - 10; 

你也可以做這樣的功能:

int randomIntegerInRange(int min, int max) 
{ 
    int range = max - min + 1; 
    return min + arc4random() % range; 
}