我回到了学校的作业,在那里我们被要求为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/