所以我的手类包含这个实例,我目前没有得到任何积分,因为我的卡类卡中有一个getter,名为{ {1}}我认为如果我检查每件套装,然后计算了从套装中发出的牌数,然后相应地分配了点数,我的代码就会起作用。
有关char getSuit()
应该做什么的更多信息......
不使用参数并返回整数。它需要计算每件套装中的牌数:
1.适用于3张卡或更多的零点数。
2.具有2张卡片的套装计数一点(这称为双层) 3.一套1卡的套数2分(这称为单刀)4.具有0张卡的套装计数3分(这称为无效)
此方法将把点加在一起并返回该数字。
int countDistributionPoints()
答案 0 :(得分:1)
我对Bridge不太了解,所以我只是继续你的描述,但是试一试:
public int countDistributionPoints()
{
int points = 0;
int cCards = 0, dCards = 0, hCards = 0, sCards = 0;
for (int i = 0; i < cards.length; i++) {
char suit = cards[i].getSuit();
if (suit == 'C')
cCards++;
else if (suit == 'D')
dCards++;
else if (suit == 'H')
hCards++;
else if (suit == 'S')
sCards++;
}
points += calculateSuitScore(cCards);
points += calculateSuitScore(dCards);
points += calculateSuitScore(hCards);
points += calculateSuitScore(sCards);
return points;
}
int calculateSuitScore(int numCards) {
int points = 0;
if (numCards >= 3)
points = 0;
else if (numCards == 2)
points++;
else if (numCards == 1)
points += 2;
else if (numCards == 0)
points += 3;
return points;
}
基本上,我认为你的问题是你需要为每件套装单独计算。