【发布时间】:2014-01-26 05:50:32
【问题描述】:
我是一个在 Xcode 上开发纸牌游戏应用程序的相对较新的程序员,到目前为止,我会生成一个随机数来确定首先发给哪张纸牌。我很好奇如何防止同一个号码多次出现。假设生成器选择了 52,并且发了黑桃 A,当它发给下一个玩家时,生成器仍然有可能选择 52,这不起作用,因为黑桃 A 已经离开了牌组。
这是我的代码示例........
(随机数从 27 到 52,因为我目前只有黑桃和红心)
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//Dealing Random Cards ------------------------------------------------------------------------------------------------------
self.FirstCard = arc4random() % 26+27;
NSLog(@"Random Number: %i", self.FirstCard);
//Deal First Card --------------------------------------------------------------------
if (self.FirstCard == 52) {
SKAction *DealFirstCard = [SKAction moveToY:40 duration:0.25];
SKAction *DealFirstCard2 = [SKAction moveToX:130 duration:0.25];
SKAction *DealSequence = [SKAction sequence:@[DealFirstCard,DealFirstCard2]];
[self.ASpade runAction:DealSequence];
}
if (self.FirstCard == 51) {
SKAction *DealFirstCard = [SKAction moveToY:40 duration:0.25];
SKAction *DealFirstCard2 = [SKAction moveToX:130 duration:0.25];
SKAction *DealSequence = [SKAction sequence:@[DealFirstCard,DealFirstCard2]];
[self.TwoSpade runAction:DealSequence];
}
if (self.FirstCard == 50) {
SKAction *DealFirstCard = [SKAction moveToY:40 duration:0.25];
SKAction *DealFirstCard2 = [SKAction moveToX:130 duration:0.25];
SKAction *DealSequence = [SKAction sequence:@[DealFirstCard,DealFirstCard2]];
[self.ThreeSpade runAction:DealSequence];
}
【问题讨论】:
-
有什么帮助吗?我在处理随机数方面不是很有经验。
标签: objective-c random numbers duplicates repeat