Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme sur le tp du pendu

Qui peut m'aider ????

Sujet résolu
    20 avril 2006 à 16:05:58

    Après avori galéré et m'étant édaidé du début de la correction g réussi a coder mon jeu mais je ne sais pas pourquoi il plante losque je le lance donc si qqnd pouvait m'aider sa serai cool.
    donc voila mon code
    /* Jeu du pendu
        par Darkpoujol
        avec l'aide des tutos du site du zero : www.siteduzero.Com
    */



    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>


    int RechercherLettre( char motSecret[], char lettre, int lettreTrouvee[]);
    int gagne (int lettreTrouvee[]);
    char lireCaractere();
    int main()
    {
            char motSecret[] = "MARRON";
            char lettre = 0;
            int lettreTrouvee[6] = {0};
            long i = 0;
            long nombreDeCoups = 10;
         printf("Bienvenue dans LE PENDU !\n\n\n");
            while(nombreDeCoups > 0 && !gagne(lettreTrouvee) )
            {

            printf("Il vous reste %ld coups\n", nombreDeCoups);
            printf("Quel est le mot secret?");

            for (i = 0; i < 6; i++)
            {
                if (lettreTrouvee[i])
                {
                    printf("%c",motSecret[i]);
                }
                else
                {
                    printf("*");
                }
            }
            printf("\nProposez une lettre?");
            lettre = lireCaractere();
            if(!RechercherLettre(motSecret, lettre, lettreTrouvee))
            {
                nombreDeCoups--;
            }

            }





            system("pause");
            return 0;
    }

    int RechercherLettre( char motSecret[], char lettre, int lettreTrouvee[])
    {
        int bonneLettre = 0;
       long i = 0;

       for(i = 0; motSecret != "\0"; i++)
       {
           if (motSecret[i] == lettre)
           {
               bonneLettre = 1;
               lettreTrouvee[i] = 1;
           }
       }

       return bonneLettre;
    }

    int gagne(int lettreTrouvee[])
    {
        long i = 0;
        int joueurGagne = 1;

        for (i = 0 ; i < 6 ; i++)
        {
            if (lettreTrouvee[i] == 0)
                joueurGagne = 0;
        }

        return joueurGagne;
    }


    char lireCaractere()
    {
        char caractere = 0;

        caractere = getchar(); // On lit le premier caractère
        caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà

        // On lit les autres caractères mémorisés un à un jusqu'à l'\n (pour les effacer)
        while (getchar() != '\n') ;

        return caractere; // On retourne le premier caractère qu'on a lu
    }
    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2006 à 19:19:14

      Bonjour à toi darkpoujol !
      pour ce qui est de ton problème, déja j'ai remarqué que dans ta fonction rechercherLettre tu as mis :
      for(i = 0; motSecret != "\0"; i++)

      En fait le \0 devrait être considéré comme un caractère donc l'écrire comme ceci: '\0'
      De plus il faut le comparé à la lettre en cours de lecture par la boucle. Là en gros tu le compare à tout le tableau motSecret. Pour résoudre ton problème il faudrait que tu mette motSecret[i].
      Ce qui donnerai au final:
      for(i = 0; motSecret[i] != '\0'; i++)

      Et cela marchera ;)
      Si tu as encore des questions n'ésite surtout pas ^^

      @+
      • Partager sur Facebook
      • Partager sur Twitter
        21 avril 2006 à 12:05:59

        Merci a toi Djkill mon programme marche du tonerre !!!!!
        • Partager sur Facebook
        • Partager sur Twitter

        probleme sur le tp du pendu

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown