× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 [java] Simplification code
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
BxG
  Posté le 12/12/2008 @ 23:10 
Aller en bas de la page 
Astucien

Bonsoir a tous,

Alors voila je souhaite avoir des valeurs différente entre 1 et 8, voici mon code:

int a = (int) (Math.random() * 8 + 1);
int b;
int c;
int d;
int e;
int f;
int g;
int h;

do{ b = (int) (Math.random() * 8 + 1); }while(a == b);
do{ c = (int) (Math.random() * 8 + 1); }while(c == a || c == b);
do{ d = (int) (Math.random() * 8 + 1); }while(d == a || d == b || d == c);
do{ e = (int) (Math.random() * 8 + 1); }while(e == a || e == b || e == c || e == d);
do{ f = (int) (Math.random() * 8 + 1); }while(f == a || f == b || f == c || f == d || f == e);
do{ g = (int) (Math.random() * 8 + 1); }while(g == a || g == b || g == c || g == d || g == e || g == f);
do{ h = (int) (Math.random() * 8 + 1); }while(h == a || h == b || h == c || h == d || h == e || h == f || h ==g);

Je ne sais pas comment faire pour le simplifier, si vous avez une idée

Merci d'avance

Publicité
fennec.
 Posté le 16/12/2008 à 13:49 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

si je comprend bien tu dois avoir 8 nombres compris entre 1 et 8

int [] nbr = new int [8];

for (int i=0;i<7;i++)

nbr[i] = (int) (Math.random() * 8 + 1);

va voir ce site

http://java.developpez.com/cours/

si tu ne le connais pas, tu trouvera beaucoup de chose pour bien débuter en java

bonne lecture



Modifié par fennec. le 16/12/2008 13:52
BxG
 Posté le 17/12/2008 à 08:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Euh oui je dois avoir 8 nombre compris entre 1 et 8 mais tous différents, d'ou ce code un peu chargé :

do{ b = (int) (Math.random() * 8 + 1); }while(a == b);
do{ c = (int) (Math.random() * 8 + 1); }while(c == a || c == b);
do{ d = (int) (Math.random() * 8 + 1); }while(d == a || d == b || d == c);
do{ e = (int) (Math.random() * 8 + 1); }while(e == a || e == b || e == c || e == d);
do{ f = (int) (Math.random() * 8 + 1); }while(f == a || f == b || f == c || f == d || f == e);
do{ g = (int) (Math.random() * 8 + 1); }while(g == a || g == b || g == c || g == d || g == e || g == f);
do{ h = (int) (Math.random() * 8 + 1); }while(h == a || h == b || h == c || h == d || h == e || h == f || h ==g);

fennec.
 Posté le 17/12/2008 à 13:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonjour,

pour les avoir tous différent

a chaque fois que ton random te donne un nombre tu doi faire une boucle

sur ton tableau (du moins tous ce qui a déjà été rempli) et refaire un random

si le nombre a déjà été pris



Modifié par fennec. le 17/12/2008 13:12
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
34,99 €MonopolyRetour vers le futur à 34,99 €
Valable jusqu'au 25 Octobre

En exclusivité, Fnac propose le jeu de société Monopoly Retour vers le futur à 34,99 €. Le jeu comporte le plateau, 6 pions en métal (DeLorean, hoverboard, Nike, Einstein, horloge, chapeau), 28 cartes propriétés, 16 cartes passé, 16 cartes futur, 32 barres de plutonium, 12 coffres de plutonium, billets, 2 dés. Notez que si vous êtes adhérent Fnac, 3,50 € vous seront également offerts sur votre compte fidélité.


> Voir l'offre
29,99 €SSD Kingston A400 240 Go à 29,99 €
Valable jusqu'au 25 Octobre

Amazon fait une promotion sur le SSD Kingston A400 240 Go qui passe à 29,99 € livré gratuitement alors qu'on le trouve autour de 35 € ailleurs. Il offre des débits de 450 Mo/s en écriture et 500Mo/s en lecture.


> Voir l'offre
24,99 €Ensemble clavier + souris sans fil Logitech MK270 à 24,99 €
Valable jusqu'au 24 Octobre

Amazon fait une promotion sur l'ensemble clavier + souris sans fil Logitech MK270 qui passe à 24,99 € alors qu'on le trouve habituellement autour de 35 €. Cet ensemble est composé d'un clavier sans fil Logitech avec des touches silencieuses et d'une souris sans fil adaptée à la forme de la main qui convient aux droitiers comme aux gauchers. Un seul récepteur USB vous permettra d'utiliser ces 2 périphériques sans fil. La livraison en point relais est gratuite.


> Voir l'offre

Sujets relatifs
parametrage du code java pour imprimer
Requete SQL ou code java
Classer une arraylist (java)
Ameliorer le Main "Java" avec les fonctions & procédures
Rafraichir un tableau en java
Calcul du jour d'après - - > java
encore java
Filter un fichier CSV en Java
java error
java 9
Plus de sujets relatifs à [java] Simplification code
 > Tous les forums > Forum Autres langages