我回到了学校的作业,在那里我们被要求为Yahtzee游戏创建一些函数,其中一个是三个类函数。这是我写的代码,我得到的评论是:“你必须能够检查到nrOfDieValues的所有数字。”我不太确定如何检查到x的数字。。我试着使用两个for循环,但结果不太好,数组的保存也被搞砸了。如果你能帮忙,我将不胜感激^_^

int isThreeOfAKind(const int dieValues[], int nrOfDieValues)
{
    int threeOAK, i, x = 0;
    int tOAK[nrOfDievalues];

    for(i = 0; i < nrOfDieValues; i++)
    {
        switch (dieValues[i]
        {
        case 1:
            tOAK[0]++;
            break;
        case 2:
            tOAK[1]++;
            break;
        ....
        ....
        case 6:
            tOAK[5]++;
            break;
        }
    }

    for (i = 0; i < nrOfDieValues; i++)
    {
        if (tOAK[i] >= 3)
        {
           x = i+1;
           threeOAK = 1;
        }

    }


    if(threeOAK)
    {
        return x;
    }
    else
    {
        return 0;
    }

}

最佳答案

移除switch(),它将dieValues[]的值映射到一个索引到tOAK[],这个映射非常基本:

for(i = 0; i < nrOfDieValues; i++)
{
  tOAK[dieValues[i]] += 1;
}

此方法的工作原理相同,但假定所有索引都是基于0的。

关于c - 三种功能-Yahtzee,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26526283/

10-12 14:36