5 つのサイコロを使用してフルハウスを計算するコードを次に示します。これで、1、6、6、6、1 をロールした場合など、いくつかの数字が機能します。しかし、4、4、5、5、4 をロールした場合は機能しません。多くの if ステートメントがあり、もっとうまくできたかもしれないことは知っていますが、私は初心者のプログラマーであり、複雑で論理的なアルゴリズムを実行できないため、これは私が快適にできることです。ありがとう。
Arrays.sort(die);
int score = 0;
int d1 = die[0];
int d2 = die[1];
int d3 = die[2];
int d4 = die[3];
int d5 = die[4];
if (d1 == 1)
{
if (d1 == 1 && d2 == 1)
{
if (d3 == 2 && d4 == 2 && d5 == 2)
{
score = 25;
}
if (d3 == 3 && d4 == 3 && d5 == 3)
{
score = 25;
}
if (d3 == 4 && d4 == 4 && d5 == 4)
{
score = 25;
}
if (d3 == 5 && d4 == 5 && d5 == 5)
{
score = 25;
}
if (d3 == 6 && d4 == 6 && d5 == 6)
{
score = 25;
}
}
else if (d1 == 1 && d2 == 1 && d3 == 1)
{
if (d4 == 2 && d5 == 2)
{
score = 25;
}
if (d4 == 3 && d5 == 3)
{
score = 25;
}
if (d4 == 4 && d5 == 4)
{
score = 25;
}
if (d4 == 5 && d5 == 5)
{
score = 25;
}
if (d4 == 6 && d5 == 6)
{
score = 25;
}
}
}
if (d1 == 2)
{
if (d1 == 2 && d2 == 2)
{
if (d3 == 3 && d4 == 3 && d5 == 3)
{
score = 25;
}
if (d3 == 4 && d4 == 4 && d5 == 4)
{
score = 25;
}
if (d3 == 5 && d4 == 5 && d5 == 5)
{
score = 25;
}
if (d3 == 6 && d4 == 6 && d5 == 6)
{
score = 25;
}
}
else if (d1 == 2 && d2 == 2 && d3 == 2)
{
if (d4 == 3 && d5 == 3)
{
score = 25;
}
if (d4 == 4 && d5 == 4)
{
score = 25;
}
if (d4 == 5 && d5 == 5)
{
score = 25;
}
if (d4 == 6 && d5 == 6)
{
score = 25;
}
}
}
if (d1 == 3)
{
if (d1 == 3 && d2 == 3)
{
if (d3 == 4 && d4 == 4 && d5 == 4)
{
score = 25;
}
if (d3 == 5 && d4 == 5 && d5 == 5)
{
score = 25;
}
if (d3 == 6 && d4 == 6 && d5 == 6)
{
score = 25;
}
}
else if (d1 == 3 && d2 == 3 && d3 == 3)
{
if (d4 == 4 && d5 == 4)
{
score = 25;
}
if (d4 == 5 && d5 == 5)
{
score = 25;
}
if (d4 == 6 && d5 == 6)
{
score = 25;
}
}
}
if (d1 == 4)
{
if (d1 == 4 && d2 == 4)
{
if (d3 == 5 && d4 == 5 && d5 == 5)
{
score = 25;
}
if (d3 == 6 && d4 == 6 && d5 == 6)
{
score = 25;
}
}
else if (d1 == 4 && d2 == 4 && d3 == 4)
{
if (d4 == 5 && d5 == 5)
{
score = 25;
}
if (d4 == 6 && d5 == 6)
{
score = 25;
}
}
}
if (d1 == 5)
{
if (d1 == 5 && d2 == 5)
{
if (d3 == 6 && d4 == 6 && d5 == 6)
{
score = 25;
}
}
else if (d1 == 5 && d2 == 5 && d3 == 5)
{
if (d4 == 6 && d5 == 6)
{
score = 25;
}
}
}
return score;
}
else
return 0;
}