Bonjour,
Je ne programme pas depuis longtemps en C et j'ai tenté de coder un pendu.
J'ai pensé coder d'abord le jeu puis le système de dictionnaire.
Cependant je reste coincé sur le jeu et lorsque le programme s'exécute la console n'affiche rien de plus l'IDE me dit warning : multi-character character constant à plusieurs reprises.
J'ai donc décidé de sollicité l'aide de programmeurs plus expérimentés que moi pour tenté de débuggé ce code.
Je tien à signalé que ce code est entièrement de ma composition et que j'ai longtemps cogité sans trouver la solution.
Voici le main.c
jeu.c qui contient les fonctions...
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 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include "jeu.h" int main(int argc, char **argv) { char word[] = "ANTICONSTITUTIONNELEMENT"; char* hideword = createanhideword(word); // Crée une chaine de même longueur que word mais remplie d'étoiles int* testtab = NULL; int essais = 10; char c = 0; printf(" Le Jeu du Pendu\n\n-------------------------\n"); printf(" Codé par WWinlin.\n-------------------------\n\n"); do { printf("%s\nIl vous reste %d essais : ", hideword, essais); c = readc(); // Lit une saisie de caractère testtab = finword(word,c); // Cherche la lettre dans word et renvoie un pointeur sur un tableau d'int agencé de cette façon : //lettre entrée : E //word : "ELEMENT" //tableau : 1010100 soit {1,0,1,0,1,0,0} unhidec(word,hideword,testtab); // Révèle des lettres de hideword en fonction du tableau de finword if(strcmp(word,hideword) == 0) { printf("\nFélicitations ! Le mot cherché était en effet %s !", word); exit(0); } }while(essais != 0); printf("\nOh! Comme c'est dommage ! Vous avez perdu ! Le mot était %s !", word); return 0; }
et jeu.h
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 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include "jeu.h" char readc() { char c = 0; c = getchar(); // Lit le caractère c = toupper(c); // Convertit en majuscule while(getchar() != '/n'); // Efface le buffer return c; } int* finword(char word[], char letter) { char actual_letter = 0; int cont = 0; while(word[cont] != '/0') // Calcule la taille de word { cont++; } int* testtab = malloc(sizeof(int) * cont); // Alloue l'espace mémoire nécéssaire à testtab cont = 0; while (actual_letter != '/0') // Compare chaque caractère de word avec la lettre entrée { actual_letter = word[cont]; if(actual_letter = letter) { testtab[cont] = 1; // 1 si identique } else { testtab[cont] = 0; // 0 si différent } cont++; } return testtab; } void unhidec(char word[], char hideword[], int tab[]) { int cont = 0; while(word[cont] != '/0') // Suit le plan donné par testtab { if(tab[cont] = 1) // Révèle la lettre si 1 { hideword[cont] = word[cont]; } } } char* createanhideword(char word[]) { int size = 0; int i = 0; while(word[size] != '/0') // Calcule la taille de word { size++; } char* hideword = malloc(sizeof(char) * (size + 1)); // Alloue l'espace mémoire nécéssaire à hideword for( i = 0 ; i < size ; i++ ) // Initialise hideword avec '*' { hideword[i] = '*'; } hideword[size] = '/0'; // Fin de chaine return hideword; }
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #ifndef DEF_JEU #define DEF_JEU char readc(); int* finword(char word[], char letter); void unhidec(char word[], char hideword[], int tab[]); char* createanhideword(char word[]); #endif
Partager