if语句我不是单牌或者炸弹返回
时间: 2024-03-19 16:46:05 浏览: 8
好的,修改一下 `getScore` 函数,如果不是单牌或炸弹,返回0分:
```c++
int getScore(vector<Card> cards) {
int score = 0;
sort(cards.begin(), cards.end(), cmp);
int size = cards.size();
// 炸弹
if (size == 4 && cards[0].rank == cards[3].rank) {
score += 4;
}
// 单张、对子、三张
else if (size == 1 || (size == 2 && cards[0].rank == cards[1].rank) ||
(size == 3 && cards[0].rank == cards[2].rank)) {
score += 1;
}
// 顺子
else if (size >= 5) {
bool isStraight = true;
for (int i = 1; i < size; i++) {
if (cards[i].rank != cards[i - 1].rank + 1) {
isStraight = false;
break;
}
}
if (isStraight) {
score += 5;
}
}
// 连对
else if (size >= 6 && size % 2 == 0) {
bool isStraightPairs = true;
for (int i = 0; i < size; i += 2) {
if (cards[i].rank != cards[i + 1].rank ||
(i + 2 < size && cards[i + 2].rank != cards[i].rank + 1)) {
isStraightPairs = false;
break;
}
}
if (isStraightPairs) {
score += 6;
}
}
// 三带一
else if (size == 4 && (cards[0].rank == cards[2].rank || cards[1].rank == cards[3].rank)) {
score += 3;
}
// 三带二
else if (size == 5 && ((cards[0].rank == cards[2].rank && cards[3].rank == cards[4].rank) ||
(cards[0].rank == cards[1].rank && cards[2].rank == cards[4].rank))) {
score += 4;
}
// 不是单牌或炸弹,返回0分
else {
score = 0;
}
return score;
}
```
现在,如果牌型既不是单牌也不是炸弹,那么得分就是0分。