[C#] Le Pendu

Résolu/Fermé
flocoplus Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonjour,
Je suis actuellement sur un projet personnel de réalisation d'un pendu en C# en console.

Voici mes problème :

1) Comment vérifier que la variable "lettre" est compris dans la variable "mot" ?
En gros comment savoir si la lettre saisie par l'utilisateur est dans le mot à deviner.

2) Est-ce possible de charger une liste de mots qui sont dans un fichier texte et d'en choisir 1 aléatoirement?
Si oui, comment faire?

3) Comment compter le nombre de lettre que contient le mot choisie par l'ordinateur pour afficher le nombre exact de _ _ _ _ _ _ ?

Merci beaucoup d'avance ;)

10 réponses

  1. chuka Messages postés 980 Statut Membre 379
     
    Salut,
    si j'ai bien compris..:
    1) Comment vérifier que la variable "lettre" est compris dans la variable "mot" ?
    En gros comment savoir si la lettre saisie par l'utilisateur est dans le mot à deviner.

    tu utilise la methode Contains() sur un objet string
    2) Est-ce possible de charger une liste de mots qui sont dans un fichier texte et d'en choisir 1 aléatoirement?
    Si oui, comment faire?

    Tu crées un reader de la classe streamreader avec le chemin de ton fichier:
    StreamReader reader=new StreamReader("Ton_chemin_vers_ton_fichier");
    string test=reader.ReadToEnd();
    //tu recupreres tous les mot dans un tableau....il faut que chaque mot soit séparé par une virgule dans mon exemple (mais cela peut etre un autre caractère....
    string[] m=test.Split(';');
    //pour l'aleatoire....y' peut-etre mieux....
    Random ra=new Random ();
    int a=ra.Next(m.Length);
    3) Comment compter le nombre de lettre que contient le mot choisie par l'ordinateur pour afficher le nombre exact de _ _ _ _ _ _ ?
    m[a].Length();

    J'espere ca pourra t'aider!!
    @+
    1
  2. flocoplus Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   28
     
    Merci beaucoup :)
    Oui ça va m'aider car maintenant je sais quelle fonction utiliser grâce à toi :D

    Je vais étudier la MSDN de chaque fonction que je ne connais pas et je vais réussir à faire ce que je veux (j'espère :P).

    Merci encore :)
    0
  3. flocoplus Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   28
     
    Ah il y a aussi une autre que je ne sais pas comment faire ^^

    Comment je peux faire pour dire que la lettre entrer va se mettre dans les _ _ _ _ _ _ à la 5ème position par exemple?
    Je ne vois pas comment faire :S
    0
  4. chuka Messages postés 980 Statut Membre 379
     
    Salut,
    peux etre un truc du style....apres je te laisse chercher...y'a surement mieux!!;-)))
    string m = "test";
    int cmpt=0;
    if (m.Contains("e"))
    {
    int index = 0;
    do
    {
    try
    {
    index = m.IndexOf("e", cmpt);
    //traiter l'affichage à l'index retourné

    cmpt = index;
    }
    catch
    {
    cmpt=m.lenght();
    }

    }
    while(cmpt<m.lenght());
    }
    @+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. flocoplus Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   28
     
    Lol encore merci je vais me pencher sur ton bout de code car là je comprend rien ^^
    (Je commence mon année de BTS Informatique de Gestion et je n'ai presque rien appris en C# :P)

    Mais je suis assoiffé de savoir sur ce langage alors je vais étudier ton code pour le comprendre puis le modifier si besoin :)

    Bonne journée et encore merci :)
    0
  7. flocoplus Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   28
     
    Grâce à toi, j'ai fini la moitié de mon programme :P mais je n'arrive pas du tout à comprendre ton dernier code :S
    Pourrais-tu juste me mettre un commentaire en face des lignes essentiels? Ça serait vraiment gentil de t'as part. Et je ne vois pas où il faut que je mette le code pour dire qu'il a trouvé une bonne lettre par exemple ^^

    Merci beaucoup de ton aide :)
    0
  8. chuka Messages postés 980 Statut Membre 379
     
    //objet string pour faire un test...
    string m = "test";
    //compteur d'index car une lettre peut apparaitre 2 fois dans "test" 't' apparait 2 fois
    int cmpt=0;
    //si le mot contient la lettre 'e' dans mon exemple
    if (m.Contains("e"))
    {
    //variable interne
    int index = 0;
    //debut de la boucle pour trouver les differentes positions de la lettre dans le mot
    do
    {
    //gestion des exception pour la fonction Indexof si on trouve plus de position dans le mot pour la lettre
    try
    {
    //index est la position de la lettre dans le mot test
    index = m.IndexOf("e", cmpt);
    //traiter l'affichage à l'index retourné--mettre ton code pour afficher au bon endroit la lettre

    //au prochain tour on recherchera à partir de la dernière position trouvée
    cmpt = index;//c'est peut-etre cmpt= index++
    }
    //si on a depassé la longueur on met cmpt à la longueur du mot pour sortir de la boucle
    catch
    {
    cmpt=m.lenght();
    }

    }
    //tant qu'on est pas arrivé au bout du mot...
    while(cmpt<m.lenght());
    }
    }
    j'espere ca pourra t'éclairer!!!
    @+
    0
  9. flocoplus Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   28
     
    Merci énormément ! J'ai tout pigé :D
    0
  10. flocoplus Messages postés 113 Date d'inscription   Statut Membre Dernière intervention   28
     
    C'est bon j'ai réussi :)
    Programme fini :)

    J'ai même fait un menu avec "Jouer Solo" "Jouer à deux" "Score Solo" "Score à deux" "Quitter" :)

    Merci encore pour ton aide :) sinon j'y serais encore :P
    0