我有下面的方法,在我的Blackjack應用程序中將獲得這是一個NSMutableArray的手的值。這裏的問題是,當2個Ace在手中時,它應該是12,但是因爲它將Ace的值計爲11,結果是22,這使得低值返回。更改NSMutableArray中重複對象的值?
我該如何做,以便我可以檢查並查看for循環是否已經找到一個Ace,如果找到另一個,使下一個Ace只值1,而不是11?
謝謝!
int getHandValue(NSMutableArray *hand) {
int lowValue = 0;
int highValue = 0;
for (KCCard *aCard in hand) {
if (aCard.value == Ace) {
lowValue+= 1;
highValue+= 11;
} else if (aCard.value == Jack || aCard.value == Queen || aCard.value == King) {
lowValue += 10;
highValue += 10;
} else {
lowValue += aCard.value;
highValue += aCard.value;
}
}
return (highValue > 21) ? lowValue : highValue;
}
您可以添加一個「BOOL isFindAce」來拯救你是否有找到一個ACE。 – zsxwing 2012-03-26 05:21:33
@zsxwing所以如果我把一個BOOL置於int highValue之下,並且當這個值是一個Ace時,將BOOL設置爲true/yes,並且如果有另一個Ace出現,它會讀取true/yes,並使其值爲1? – Alec 2012-03-26 05:22:57