计算桥牌比赛的诉讼点数

时间:2015-05-03 20:16:31

标签: java

所以我的类包含这个实例,我目前没有得到任何积分,因为我的类卡中有一个getter,名为{ {1}}我认为如果我检查每件套装,然后计算了从套装中发出的牌数,然后相应地分配了点数,我的代码就会起作用。

有关char getSuit()应该做什么的更多信息......

不使用参数并返回整数。它需要计算每件套装中的牌数:

1.适用于3张卡或更多的零点数。

2.具有2张卡片的套装计数一点(这称为双层)

3.一套1卡的套数2分(这称为单刀)

4.具有0张卡的套装计数3分(这称为无效)

此方法将把点加在一起并返回该数字。

int countDistributionPoints()

1 个答案:

答案 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;
}

基本上,我认为你的问题是你需要为每件套装单独计算。