gpt4 book ai didi

ios - 如何比较数组中的三个对象?

转载 作者:行者123 更新时间:2023-12-03 16:46:43 25 4
gpt4 key购买 nike

在我的纸牌匹配游戏中(在斯坦福类(class)之后),我需要创建一个 UISwitch 来将匹配两张纸牌的游戏模式更改为三张纸牌匹配,现在我已经有了一个匹配方法看起来像这样:

-(int)match:(NSArray *)cardToMatch {

int score = 0;

if (cardToMatch.count == 1) {
PlayingCards *aCard = [cardToMatch lastObject];

if ([aCard.suit isEqualToString: self.suit]) {
score = 1;
} else if (aCard.rank == self.rank) {
score = 4;
}

}

return score;
}

它已经是一个数组,但我只是在两张卡之间进行检查。我怎样才能改进这个方法来检查三个,或者创建一个单独的方法?

这也是检查已翻转的卡片的方法:

-(Card *) cardAtIndex:(NSUInteger)index {

return (index < self.cards.count) ? self.cards[index] : nil;
}


#define FLIP_COST 1
#define MISMATCH_PENALTY 2
#define BONUS 4

-(void) flipCardAtIndex:(NSUInteger)index {



Card *card = [self cardAtIndex:index];

if (!card.isUnplayable) {

if (!card.isFaceUp) {

for (Card *otherCard in self.cards) {

if (otherCard.isFaceUp && !otherCard.isUnplayable) {

int matchScore = [card match:@[otherCard]];

if (matchScore) {

otherCard.unplayble = YES;
card.unplayble = YES;

self.notification = [NSString stringWithFormat:@"%@ & %@ match!", card.contents, otherCard.contents];

self.score += matchScore * BONUS;
} else {
otherCard.faceUp = NO;
self.score -= MISMATCH_PENALTY;
self.notification = [NSString stringWithFormat:@"%@ did not matched to %@", card.contents, otherCard.contents];
}
break;
}

}
self.score -= FLIP_COST;
}
card.faceUp = !card.isFaceUp;

}
}

谢谢。

最佳答案

我假设您已经知道您要匹配的卡片的索引。因此,如果您有三个索引,请让您的匹配函数返回一个 bool 值。然后您可以使用嵌套 if 来测试第三张卡。它看起来像这样。

if([self match:index1 card2:index2]){
if(self match:index1 card2:index3){
NSLog(@"You have a match");
}
}
else NSLog@"No match";

您的匹配函数将类似于:

-(BOOL)match:(int)index1 card2:(int)index2{
//Do your matching here and return if YES or NO accordingly
}

关于ios - 如何比较数组中的三个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com