我拿回了学校作业,要求我们为 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 开始的。
我是一名优秀的程序员,十分优秀!