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
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;
}
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
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;
}
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
 
#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
Merci d'avance