Yahtzee で smallStraight を計算するメソッドを実行する必要があります (小さなストレートとは、1 ずつ増加する 4 つのダイがあることを意味します。たとえば、1,2,3,4,6
小さなストレートです)。今、私は、配列を並べ替えると、重複する数値が存在する可能性があるというハードルを乗り越えようとしています。
たとえば、ロールしてから並べ替えると、1, 2, 2, 3, 4
. ここで、基本的に、配列の最後にある 2 番目の 2 を削除する必要があります。これが私のコードです。これは、ネストされた 4 つのループに関しては明らかに機能しないことに注意してください。これについて最善の方法を知りたいだけです。
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;
}