I'm trying to create a mastermind style game to build up my iOS objective c skills. I'm trying to create 6 random numbers between 0 and 9 using the following. I get different numbers when run at different times but all 6 numbers are always the same on each run.
NSNumber *n1 = [[NSNumber alloc]initWithInt:(random() % 10)];
NSNumber *n2 = [[NSNumber alloc]initWithInt:(random() % 10)];
NSNumber *n3 = [[NSNumber alloc]initWithInt:(random() % 10)];
NSNumber *n4 = [[NSNumber alloc]initWithInt:(random() % 10)];
NSNumber *n5 = [[NSNumbe开发者_StackOverflow中文版r alloc]initWithInt:(random() % 10)];
NSNumber *n6 = [[NSNumber alloc]initWithInt:(random() % 10)];
Any help would be very useful.
Most likely you forgot to seed the random generator(i.e. add the following line before generating random numbers):
srandom(time(NULL));
Anyway, on iPhone you should use arc4random() function - it provides much better results and does not require seeding:
NSNumber *n1 = [[NSNumber alloc]initWithInt:(arc4random() % 10)];
精彩评论