我需要在 Yahtzee 中做一个计算 smallStraight 的方法(小直意味着你有 4 个骰子增加一……例如,1,2,3,4,6
是一个小直)。现在我正试图克服当你对数组进行排序时可能会有重复数字的障碍。
例如,如果您滚动然后排序,您可能会得到一个1, 2, 2, 3, 4
. 现在我基本上需要删除数组末尾的第二个 2。这是我的代码。请注意,这显然不适用于嵌套的四个循环。我只是想知道解决这个问题的最佳方法。
public int setSmallStraight(int[] die)
{
if (!isSmallStraightUsed)
{
int counter = 0;
boolean found = false;
Arrays.sort(die);
for (int i = 0; i < die.length - 1; i++)
{
if (counter == 3)
found = true;
if (die[i + 1] == die[i] + 1)
{
counter++;
}
else if (die[i + 1] == die[i])
{
continue;
}
else
{
counter = 0;
}
}
if (found)
{
smallStraight = 30;
}
else
{
smallStraight = 0;
}
return smallStraight;
}
else
return 0;
}