计算手牌,但是Ace可以是1或11,具体取决于哪一个对您的帮助最大。如何选择正确的值?
我尝试检查该值是否等于11,如果是,那么它将是Ace,但由于Ace可能是迭代中的第一个,所以我无法真正做到这一点,因此我无法真正获得总手数,因为该数字为0,而房屋将使Ace赢得11分,但这对用户来说可能真的很糟糕。
int Hand::CalculateHand() {
int i;
int totalValue = 0;
for (i = 0; i < this->cards.size(); i++) {
totalValue = totalValue + this->cards.at(i).GetValue();
}
return totalValue;
}
int Card::GetValue() {
if (is_number(this->cardValue)) {
return stoi(this->cardValue);
} else if (this->cardValue == "A") {
return 11;
} else {
return 10;
}
return 0;
}
预期结果是,如果选择Ace,则应该根据最有帮助的情况选择1或11,但是目前我还不能真正选择Ace的值。我需要使Ace迭代到最后,这样总手数才能正确,并且手数可以正确计算。