Désolé pour le titre potentiellement déroutant, c'était le meilleur que je pourrais trouver pour décrire le problème que j'ai.Comment trouver combien de valeurs dans un tableau de nombres aléatoires correspondent?
Quoi qu'il en soit, jusqu'à des punaises de cuivre: Je travaille sur une tâche Java (oui, c'est un travail de classe, écoutez-moi) pour créer un jeu de dés, appelé FiveDice2.java. Ce que je dois faire est de faire rouler cinq dés chacun pour un CPU et un joueur humain, et ensuite déterminer quel "joueur" a gagné le jeu, en déterminant s'ils ont une paire, un brelan, un brelan, etc. Mon problème réside dans cette dernière partie. Je n'arrive pas à avoir une idée de la façon d'atteindre cet objectif. Ma meilleure idée était de créer un tableau de toutes les valeurs de roulis possibles, de 1 à 6, et de comparer les jets de dés à ce tableau, et de garder trace du nombre de correspondances que chaque nombre a obtenu dans une variable séparée (int, int twos, int threes, etc.), mais plus j'y pensais, plus je réalisais combien de validation cela prendrait, et je ne peux pas m'empêcher de penser que je ne suis pas sur la bonne voie.
Ma meilleure tentative va un petit quelque chose comme ceci:
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 }
}
Ce serait formidable si quelqu'un pouvait me aider à comprendre où je vais mal ou comment je devrais changer mon penser à comment faire cela; Je ne demande pas d'être nourri à la main, je voudrais juste un peu d'aide pour comprendre comment y arriver moi-même. Merci d'avance.
cela facilitera l'identification de n-of-a-kind et de droites. –