该功能用于计算二十一点手的分数。踢球者是因为当得分低于11时aces我想要加上10,如果有一个ace,因为我已经将它= 1,所以如果得分大于11,它只会加一,并且由于某种原因我不是这样做的,我不知道为什么,它只是增加1.继承我的类型和我的功能。
typedef enum { HEARTS, DIAMONDS, SPADES, CLUBS } suit_t;
typedef enum { ACE = 1, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING } value_t;
typedef struct {
suit_t suit;
value_t value;
} card_t;
typedef struct {
card_t playercards[21];
int num_cards_in_array;
} hand_t;
// blackjack_value = returns an integer that represents the blackjack value of the hand
int blackjack_value(hand_t hand) {
int score = 0;
int i;
card_t card;
for (i=0; i < hand.num_cards_in_array; i++) {
score = points(hand.playercards[i]) + score;
if (score < 11 && card.value == ACE) {
score = score + points(hand.playercards[i])+ 10;
}
}
return score;
}
答案 0 :(得分:0)
关于:
if (score < 11 && card.value == ACE)
预计这将如何知道正在查看哪张卡?我认为这是你问题的根源。
推荐:
if( score < 11 && hand.playercards[i] == ACE )
但是,不应该在总结手牌中的循环之后进行检查吗?