如何根据手牌选择最佳的Ace值?

时间:2019-06-15 01:17:21

标签: c++ visual-c++ blackjack

计算手牌,但是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迭代到最后,这样总手数才能正确,并且手数可以正确计算。

0 个答案:

没有答案