如何实现NSArray中的元素随即乱序
1个回答
展开全部
提供一个思路吧,扑克游戏中一种洗牌算法的实现:
int count = 54;
NSMutableArray pokeArray = [NSMutableArray alloc] initWithCapacity:count];
// 将牌按顺序摆放
for(int i=0; i<count;i++){
[pokeArray addObject:[NSNumber numberWithInt:i]];
}
// 循环将倒数第n张牌中的随机一张放到整个扑克的最后
for(int n=count-1;n>=1;n--){
int rand = (int)(rand()/(float)RAND_MAX*n);
NSNumber *pokeMoveToEnd = [pokeArray objectAtIndex:rand];
[pokeArray removeObjectAtIndex:rand];
[pokeArray addObject:pokeMoveToEnd];
}
int count = 54;
NSMutableArray pokeArray = [NSMutableArray alloc] initWithCapacity:count];
// 将牌按顺序摆放
for(int i=0; i<count;i++){
[pokeArray addObject:[NSNumber numberWithInt:i]];
}
// 循环将倒数第n张牌中的随机一张放到整个扑克的最后
for(int n=count-1;n>=1;n--){
int rand = (int)(rand()/(float)RAND_MAX*n);
NSNumber *pokeMoveToEnd = [pokeArray objectAtIndex:rand];
[pokeArray removeObjectAtIndex:rand];
[pokeArray addObject:pokeMoveToEnd];
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询