我一直试图为一副牌编写一个应用程序,但我的代码中不断出现错误。错误出现在otherCard
上,显示
未声明的标识符otherCard。
#define MATCH_BONUS 4
#define MISMATCH_PENALTY 2
#define FLIP_COST 1
- (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.unplayable = YES;
card.unplayable = YES;
self.score += matchscore * MATCH_BONUS;
} else {
otherCard.faceUp = NO;
self.score -= MISMATCH_PENALTY;
}
break;
}
}
self.score -= FLIP_COST;
}
card.faceUp = !card.isFaceUp;
}
}
card
类被card
变量屏蔽。
card *card = [self cardAtIndex:index];
这意味着每个循环的都会失败
for (card *otherCard in self.cards) {
尝试将card
类更改为带有大写C的Card
(将类名大写也是一种不错的风格)。或者,您可以将card
变量重命名为类似flipCard
的其他变量。