Bonjour a tous
Pour progresser un peu en language c j'ai décidé faire le tp (du pendu) du site du 0
Meme si le tp n'est pas encore fini et le programme peut etre amélioré je n'arrive pas a comprendre le résultat qu'affiche le printf (Quelle est le mot secret ? )

je vous en serais vraiment très reconnaissant si vous pouviez me dire ce qui ne marche pas: j'ai posté le code ci dessous


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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "main.h"
 
void inialiser(char* chainejeu ,int tailletableau)
{
int i=0;
char vide='*';
 
    for(i=0;i<tailletableau;i++)
    {
    chainejeu[i]=vide;
    }
 
}
 
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
 
}
 
int cherchercaractere (const char* chaineatrouver ,char caractere, char* chainejeu) //on cherche le caractere demandé et si on le trouve on l'ajoute
{
int longeur=strlen(chaineatrouver);
int i=0;
int trouver=0;
char temp=NULL;
 
 
    for (i=0;i<longeur;i++)
    {
    temp=chaineatrouver[i];
 
        if(temp == caractere)
        {
        chainejeu[i]=chaineatrouver[i];
        trouver++;
        }
 
        else
        {
        }
    }
return trouver;
}
 
 
 
int main()
{
char motsecret[]="MARRON";
int longeurdeviner=strlen(motsecret);
printf("%d\n" ,longeurdeviner);
 
 
char *chainejeu=NULL;
chainejeu=malloc(sizeof(char)*longeurdeviner);
 
if(chainejeu!=NULL)
{
printf("ca vient pas de l alloc\n\n");
}
 
char malettre=NULL;
int couprestant=10;
int j=0;
int gagner =0;
int pendu =1;
 
inialiser(chainejeu,longeurdeviner);
 
    for(j=0;j<10;j++)
    {
    printf("il vous reste %d coup a jouer\n" ,couprestant);
    printf("Quelle est le mot secret ? %s\n" ,chainejeu);
    malettre=lireCaractere();
    gagner=cherchercaractere(motsecret,malettre,chainejeu);
 
        if(gagner !=0)
        {
        printf("cette lettre existe\n\n");
        }
 
        else
        {
        printf("perdu\n\n");
        }
    couprestant--;
    }
 
pendu=strcmp(motsecret,chainejeu);
free(chainejeu);
 
        if(pendu ==0)
        {
        printf("tu as gagner\n");
        }
 
        else
        {
        printf("tu as perdu\n");
        }
 
 
 
 
return 0;
 
}