Random identique
Hamster18
Messages postés
176
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
J'essaye d'initialiser automatique un tableau de int dans un objet carte ainsi j'ai ceci :
et la méthode initialiser tab comme ceci :
Mais mes nb1, nb2, nb3 sont identique pour toute mes cartes est j'en voie pas la raison ...
Merci d'avance pour votre aide.
Cordialement.
J'essaye d'initialiser automatique un tableau de int dans un objet carte ainsi j'ai ceci :
new Carte( [mes autres attributs ], initialiserTab(new int[3]) )
et la méthode initialiser tab comme ceci :
Random rand1 = new Random();
Random rand2 = new Random();
Random rand3 = new Random();
nb1 = rand1.nextInt(25);
nb2 = rand2.nextInt(25);
nb3 = rand3.nextInt(25);
for (int i = 0; i < 3; i++) {
tab[i] = nb1;
if (i == 1) {
tab[i] = nb2;
}
if (i == 2) {
tab[i] = nb3*-1;
}
}
Mais mes nb1, nb2, nb3 sont identique pour toute mes cartes est j'en voie pas la raison ...
Merci d'avance pour votre aide.
Cordialement.
5 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, je pense que rand1 suffit, et peut-être utilisé plusieurs fois. -
D'accord, mais ça change pas mon problème, toute mes carte ont dans leur tableau les mêmes valeurs ...
-
Voici le code exacte :
int nb1; int nb2; int nb3; private Random rand1 = new Random(); private int[] initialiserTab( int tab[]) { nb1 = rand1.nextInt(5)+5; nb2 = rand1.nextInt(5)+5; nb3 = rand1.nextInt(5)+5; for (int i = 0; i < 3; i++) { tab[i] = nb1; if (i == 1) { tab[i] = nb2; } if (i == 2) { tab[i] = nb3*-1; } } return tab; } public ListeCarte() { listeCarte.add(new Carte(1,"Droit", R.drawable.droit_des_femmes, "Voulez-vous donner le droit de vote aux femmes ?", initialiserTab(new int[3]) )); listeCarte.add(new Carte(2,"Guerre", R.drawable.guerre, "Les hommes cherchent sans cesse à s'entretuer. Voulez-vous leur en donner les moyens ?", initialiserTab(new int[3]) )); [...] } -
Non toujours pas , et c'est dans une classe listeCarte
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Plusieurs "corrections" pour éviter du code inutile (genre la boucle qui ne sert à rien, les variables globales à proscrire, etc.)
private static final Random random = new Random(); private static int[] randomArray() { return new int[] { random.nextInt(5)+5, random.nextInt(5)+5, random.nextInt(5)+5 } } public ListeCarte() { listeCarte.add(new Carte(1, "Droit", R.drawable.droit_des_femmes, "Voulez-vous donner le droit de vote aux femmes ?", randomArray())); listeCarte.add(new Carte(2, "Guerre", R.drawable.guerre, "Les hommes cherchent sans cesse à s'entretuer. Voulez-vous leur en donner les moyens ?", randomArray())); }