我正在尝试制作纸牌游戏。我正在使用以下代码绘制随机卡
iCard = random()%55;
但是icard总是从28开始。 似乎它以相同的顺序返回数字。
每次首次调用函数时,有没有办法获得不同的随机数????
答案 0 :(得分:3)
random()
和rand()
使用种子,它始终是相同的种子序列。
使用arc4random()
它不使用种子并且是100%随机
答案 1 :(得分:0)
尝试使用此代码:int random = min + arc4random() % (max - min + 1);
答案 2 :(得分:0)
-(IMCard*) drawRandomCard
{
IMCard *randomCard = nil;
if ([self.cards count]) {
unsigned index = arc4random() % [self.cards count];
randomCard = self.cards[index];
[self.cards removeObjectAtIndex:index];
}
return randomCard;
}