Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Jeu du pendu


Sujet :

C

  1. ###raw>post.musername###
    Nouveau Candidat au Club
    Jeu du pendu
    Bonjour a tous je suis actuellement étudiant en informatique (pure débutant) et je cherche a résoudre mes problèmes suite a ce code que j'ai confectionné si jamais vous pouvez m'apporter de l'aide s'il vous plait je serais très reconnaissant.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <string.h>
     
    char lireCaractere();
     
     
    char *strdup(const char *s) {
        char *d;
        d = malloc((strlen(s)+1) * sizeof(char));
        strcpy(d, s);
        return d;
    }
     
    int main(int argc, char *argv[])
    {
        FILE *f;
        char **dictionnaire;
        char mot[81];
        size_t nmots;
     
     
        f = fopen("P:\\MiniMousseau\\Mots.txt", "r");
        fscanf(f, "%d", &nmots);
        dictionnaire = malloc(nmots * sizeof(char *));
     
        for (size_t i = 0; i < nmots; ++i) {
            fscanf(f, "%80s", mot);
            dictionnaire[i] = strdup(mot);
        }
     
        for (size_t i = 0; i < nmots; ++i)
            printf("Mot no %d: '%s'\n", i, dictionnaire[i]);
     
     
     
        long nombrecoups = 6
        char motsecret;
        long nombrecaracteres = 0;
        long i = 0;
        char caractereentre;
        char *motdecouvert;
        printf("Bienvenue dans le jeu du pendu\n\n");
        nombreCaracteres = strlen(motMystere);
        motDecouvert = (char *) malloc(nombreCaracteres * sizeof(char));
        for(i=0;i<nombreCaracteres;i++) motDecouvert[i]='*';
        do
        {
            i = 0;
            printf("%ld Coups restants\n", nombreCoups);
     
            printf("Quelle est le mot cache : ");
     
            do
            {
                printf("%c", motDecouvert[i]);
                i++;
            } while(i != nombreCaracteres);
            printf("\n");
            printf("Saisissez une lettre : ");
            caractereEntre = lireCaractere();
            trouverEtRemplacer(motMystere, motDecouvert, caractereEntre, nombreCaracteres);
            if(strchr(motMystere, caractereEntre) == 0)
            {
     
                nombreCoups--;
            }
     
        } while(nombreCoups != 0);
        */
        return 0;
    }
    char lireCaractere()
    {
        char caractere = 0;
     
        caractere = getchar();
        caractere = toupper(caractere);
     
     
        while (getchar() != '\n') ;
     
        return caractere;
     
    }
     
    void trouverEtRemplacer(char motSecret[], char motTrouver[], char lettre)
    {
        char caractereActuel = 0;
        long i = 0;
     
        do
        {
            caractereActuel = motSecret[i];
     
            if(caractereActuel == lettre)
            {
                motTrouver[i] = motSecret[i];
            }
            i++;
        }while(motSecret[i] != '\0');
    }
      0  0

  2. #2
    Expert éminent sénior
    C'est pas du C++, c'est du C.
    Le débogueur est ton ami.

  3. #3
    Nouveau Candidat au Club
    Autant pour moi c'est du c cependant meme avec l'utilisation du debugger mon programme ne propose aucune solution des trucs s'affiche en rouge et je ne sais comment résoudre....

  4. #4
    Expert éminent sénior
    Bon, ok, on fait la différence entre un compilateur et un débogueur ?
    Commencez par lire les messages du compilateur, c'est très utile, normalement.

  5. #5
    Nouveau Candidat au Club
    Aucune détection
    Mon debogger ne me montre aucun probleme mais au moment du lancement du programme cela ne marche pas.... :'(

  6. #6
    Rédacteur/Modérateur

    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre actif
    En l'état le programme ne peut pas compiler.

    Par exemple, ligne 45
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    nombreCaracteres = strlen(motMystere);

    Il n'existe pas de variable 'motMystere' et la variable 'nombreCaracteres' n'existe pas non plus (elle s'appelle 'nombrecaracteres').
    Si les variables ne sont pas correctement déclarées au préalable, ça ne peut pas fonctionner.

  8. #8
    Membre confirmé
    il y a un fopen sans tester si le fichier existe et pas de fermeture du fichier

  9. #9
    Expert éminent sénior
    pour créer un dictionnaire je recommende plutôt d'utiliser des listes chaînées qu'un double tableau de pointeur de char **
    Mais perso il y a longtemps que je serais passé à std::multimap<std::wstring>
    La théorie, c'est quand on sait tout et que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
    ( A Einstein)