多分混乱しているタイトルのため申し訳ありませんが、それは私が持っている問題を説明するために思い付くことができた最高でした。乱数の配列の中のいくつの値が一致するのか?
とにかく、真鍮のタックに至るまで:私はFiveDice2.javaと呼ばれるサイコロのゲームを作成するために、Javaの割り当て(はい、これはクラスワークで、聞いてください)に取り組んでいます。私がする必要があるのは、CPUと人間のプレイヤーのためにそれぞれ5つのサイコロを振って、どのプレイヤーがゲームに勝ったのか、それらがペアを持っているかどうか、種類が2種類、種類が3種類あるかどうかを判断することです。私の問題は最後の部分にあります。私は実際にその目標を達成する方法のアイデアを得るように見えることはできません。
考えられるすべてのロール値1-6の配列を作成し、ダイスロールをその配列と比較して、各数値が別々の変数にどれだけ一致したかを記録しておくこと(int ones、 int thos、int threesなど)、しかし、私はそれについてもっと考えていれば、どれくらいのバリデーションが実現するのかが分かりました。私は正しい道にないと感じています。誰かが私が間違っているつもりですか、私は私を変更する方法をどこに私が理解するのに役立つことができればそれは素晴らしいことだ
public class FiveDice2
{
\t public static void main(String[] args)
\t {
//Declare arrays for cpu and player dice
Die[] cpuDice = new Die[5];
Die[] playerDice = new Die[5];
int possibleValues = new int[]{1,2,3,4,5,6};
int ones, twos, threes, fours, fives, sixes;
int cpuHand, playerHand;
\t \t //Instantiate five Dice objects for the "CPU"
for(cpu = 0; cpu < cpuDice.length; cpu++)
{
cpuDice[cpu] = new Die();
}
\t \t //Instantiate five more Dice objects for the player
for(p = 0; p < cpuDice.length; p++)
{
playerDice[p] = new Die();
}
\t \t //Print rules of game to the console
\t \t System.out.println("Dice Game");
\t \t System.out.println("Two sets of dice will be thrown.");
\t \t System.out.println("Winner is determined by who has the better \"hand\" of dice.");
\t \t System.out.println("Each combination in the table beats all the ones below it: ");
\t \t System.out.println("-Five of a kind");
\t \t System.out.println("-Four of a kind");
\t \t System.out.println("-Three of a kind");
\t \t System.out.println("-Pair");
\t \t System.out.println("If none of the above, whoever has the highest total wins.");
\t \t //Output values of the "CPU's" rolls
System.out.println("CPU dice:");
for(cpu = 0; cpu < cpuDice.length; cpu++)
{
System.out.println(cpuDice[cpu].getDieValue());
}
System.out.println();
\t \t //Output values of the player's rolls
System.out.println("Player dice:");
for(p = 0; p < playerDice.length; p++)
{
System.out.println(playerDice[p].getDieValue());
}
System.out.println();
for(int i = 0; i < possibleValues.length; ++i)
{
if(cpuDice[i] == possibleValues[i])
{
if(cpuDice[i] == 1)
{
ones++;
}
if(cpuDice[i] == 2)
{
twos++;
}
if(cpuDice[i] == 3)
{
threes++;
}
if(cpuDice[i] == 4)
{
fours++;
}
if(cpuDice[i] == 5)
{
fives++;
}
if(cpuDice[i] == 6)
{
sixes++;
}
}
if(playerDice[i] == possibleValues[i])
{
if(playerDice[i] == 1)
{
ones++;
}
if(playerDice[i] == 2)
{
twos++;
}
if(playerDice[i] == 3)
{
threes++;
}
if(playerDice[i] == 4)
{
fours++;
}
if(playerDice[i] == 5)
{
fives++;
}
if(playerDice[i] == 6)
{
sixes++;
}
}
}
\t }
}
:
私の最高の試みは、このような小さなものですこれを行う方法について考えてみてください。私は答えを手に入れることを求めていません、私はそこにどうやって行くのかを理解する助けがほしいと思います。前もって感謝します。
5つのサイコロを転がした後、値をソートしてみてください。これは、n-of-a-kindとstraightsの識別を容易にします。 –