Bonjour,
J'ai un soucis avec mon code, je n'obtiens pas le résultat voulu.
J'ai un tableau de mot (français et traduction en anglais) que j'initialise
je souhaite afficher l'ensemble des mots français aléatoirement sans que deux fois le même mot soit affiché. Pour cela, j'ai crée un tableau vide et une fonction estPasPresent() qui teste si le mot est pas présent dans un tableau de mot.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 private mot[] biblio = new mot[10]; initialiser_bdd(biblio); private void initialiser_bdd(mot[] F) { int i = 0; F[i] = new mot("âne", "donkey"); i++; F[i] = new mot("boeuf", "beef"); i++; F[i] = new mot("canard", "duck"); i++; F[i] = new mot("chat", "cat"); i++; F[i] = new mot("cheval", "horse"); i++; F[i] = new mot("chien", "dog"); i++; F[i] = new mot("cochon", "pig"); i++; F[i] = new mot("coq", "cock"); i++; }
J'ai testé ce code, il fonctionne. Par contre quand j'utilise cette fonction pour ranger aléatoirement un tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private mot[] rand = new mot[10]; private Boolean estPasPresent (mot m,mot[] t, int dimension) { for(int i = 0; i<dimension ; i++) { if (m.motfrancais == t[i].motfrancais) {return false; break;} } return true; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Random rdm1 = new Random(); int returnValue; returnValue = rdm1.Next(0,8); rand[0] = biblio [returnValue]; for (int i = 1; i < 8; i++) { do { returnValue = rdm1.Next(0,8); rand[i] = biblio [returnValue]; } while (estPasPresent (rand[i],rand,8)); }
J'obtiens :
//cochonchiencochoncanardcochoncoqcanardcochon
//boeufcochonchatcochonchatchatcanardcoq
//ânechevalchatâneâneboeufchatboeuf
Si quelqu'un peut m'aider. Merci.
Partager