Générer aléatoirement des lettres

Signaler
Messages postés
10
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
7 mars 2007
-
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
-
Bonjour!

Je dois créer une espèce de jeu de type Boggle pour mon cours.  Mon problème se situe au niveau de la génération les lettres.  Le jeu comporte 16 cases et on doit y compter toujours 6 voyelles mais pas toujours au même endroit.  Le reste des cases contient des consonnes choisies aussi aléatoirement.

Est-ce que quelqu'un pourrait me donner une idée à savoir comment mettre des lettres aléatoirement dans ces cases?

Merci beaucoup!

Anne-Marie

6 réponses

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Tu peux comme ceci: (c'est une solution parmi milles). Bon, je n'ai pas compter ici les lettres accentuées mais cela n'affectera pas notre petit programme, si tu veux ajoutes les.











import java.util.*;



public class GeneratorOfRandomWords {



    // Je te laisses le soin d'écrire toutes les lettres consonnes ici




    public static final String CONSONNES = "bcdfghklmn...xz";



    public static final String VOYELLES  = "aeioy";



    public static final int LENGTH = 16;



    public static final int NUMBER_VOYELLES = 6;



    public static final int NUMBER_CONSONNES = 10;




    // Générer un mot de 16 lettres tellesque il y a exactement 6 voyelles





    // Et les autres (10 lettres) sont des consonnes.




    public static String generate () {



       char [] array = new char [LENGTH];



       Arrays.fill (array, '#');



       Random random = new Random (System.currentTimeMillis ());




       // Générer les 6 lettres voyelles



       for (int i = 0; i < NUMBER_VOYELLES; ++i) {



          char voyelle = VOYELLES.charAt (random.nextInt (
NUMBER_VOYELLES
));



          while (true) {



              int index = random.nextInt (LENGTH);



              if (array[index] == '#') {



                   array [index] = voyelle;



                   break;




              } 




          }




        }




       

// Générer les 10 lettres consonnes




       for (int i = 0; i <
NUMBER_CONSONNES
; ++i) {



          char consonne = VOYELLES.charAt (random.nextInt (
NUMBER_CONSONNES
));



          while (true) {



              int index = random.nextInt (LENGTH);



              if (array[index] == '#') {



                   array [index] = consonne;



                   break;




              } 




          }




        }



        return Arrays.toString (array);




    }




}




__________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Il faut tout même signaler que l'algorithme que j'ai utilisé pour remplir le tableau de 16 lettres n'est pas déterministe.



Toute fois, tu peux, le rendre déterministe ce qui nécessite beaucoup plus de code. (Il faut savegarder les positions du tableau où il y a du "place vide" et faire un random sur les indices de ces "places vides" pour peupler notre tableau final).




__________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
Messages postés
10
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
7 mars 2007

Tu peux me dire comment on fait ca?? : import java.util.*;    est-ce que je fais juste taper dans mon code???

Je suis désolé mais je suis encore au stade de débutant et je ne connais pas cela.

Merci beaucoup!

Anne-Marie
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Ne me dis pas que tu ne sais pas le langage Java.



Si oui, je suis débutant comme toi je veux essayer de t'aider avec ce que j'ai appris.



Tu dois ajouter à notre code en plus :



public class
GeneratorOfRandomWords {



    //



    public void main (String [] args) {




       String str = generate ();




                  System.out.println ("mot aléatoire:" + str);





    }






}



1. Télécharger le kit de développement de Java. (JDK 1.6.0 est disponible)



2. Ecrire dans notepad le code ci-dessus.



3. Enregistrer le fichier sous le nom
GeneratorOfRandomWords.java (c'est obligatoire).



4. Compiler le programme: javac

GeneratorOfRandomWords.java




5. Exécuter le programme: java

GeneratorOfRandomWords




Conclusion: C'est ce que je peux te dire on ne peut pas expliquer tout dans une seule réponse je te conseille fortement de voir un cours Java. Crois moi pour faire ton premier programme Java ça va prendre de toi plusque 10 minutes.




__________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...
Messages postés
10
Date d'inscription
mardi 6 mars 2007
Statut
Membre
Dernière intervention
7 mars 2007

Bonjour

merci de ton aide mais je viens de me rendre compte que je me suis inscrite dans java et que c'est du visual basic.net que je fais...

dsl, je suis un peu mêlée... merci quand meme pour ton aide!

Merci beaucoup!

Anne-Marie
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:



Ha, Ha, Ha, ...



Tu es la bienvenue.




Fais comme chez toi ...



Personnellement, je pense que les membres de javafr sont les plus sympa bien sûr avec tout le respect pour les autres (c'est juste un avi).



Pourquoi ne pas se CONVERTIR en Java?




__________________________________________________________
A.B. :  La lumière voyage plus vite que le son. C'est pourquoi certaines personnes paraissent brillantes jusqu'à ce qu'elles commencent à parler ...