Alors voici le code, le probleme c'est que je vais chercher dans des fichiers si le mot rentré existe, et vous n'avez pas ces fichiers...
Voici ma fonction (elle se repete pour un mot allant de 2 a 15 lettres je n'ai pas trouvé un moyen de la rendre plus courte) :
int mot_valide(int plateau[15][15], char mot[20], int direction, int coord_X, int coord_Y)
{
int longueur=strlen(mot)+1;
int existe=0; // indique si le mot existe dans le dico //
int i,j;
char mot_bis[longueur];
FILE * entree;
if (coord_X + longueur > 14 || coord_Y + longueur > 14)
{
printf("Le mot sort du plateau de jeu ! \n");
return 0;
}
else if (longueur==3)
{
entree=fopen("2_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==4)
{
entree=fopen("3_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==5)
{
entree=fopen("4_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==6)
{
entree=fopen("5_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==7)
{
entree=fopen("6_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==8)
{
entree=fopen("7_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==9)
{
entree=fopen("8_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==10)
{
entree=fopen("9_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==11)
{
entree=fopen("10_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==12)
{
entree=fopen("11_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==13)
{
entree=fopen("12_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==14)
{
entree=fopen("13_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==15)
{
entree=fopen("14_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
else if (longueur==16)
{
entree=fopen("15_lettres.txt","r");
do
{
fscanf (entree,"%s",mot_bis);
if (strcmp(mot_bis,mot)==0)
{
existe=longueur-1;
return 1;
}
}
while (!feof(entree) && strcmp(mot_bis,mot)!=0);
if(!existe)
{
printf ("Le mot %s n'existe pas!\n",mot);
return 0;
}
}
}
Et voici le programme principal :
main()
{
int mot_valide(int [15][15], char [20], int , int , int );
int plateau_de_jeu[15][15];
int i,j,coord_X,coord_Y,direction,valeur_mot;
char mot[20];
printf("Bonjour !\n ");
do
{
printf("Entrez votre mot :\n");
gets(mot);
printf("Choisir votre direction pour placer le mot : 0=>droite 1=>bas \n");
scanf("%d",&direction);
printf("Choisir l'abscice de la premiere lettre de votre mot : \n");
scanf("%d",&coord_X);
printf("Choisir l'ordonnee de la premiere lettre de votre mot : \n");
scanf("%d",&coord_Y);
mot_valide(plateau_de_jeu,mot,direction,coord_X ,coord_Y);
}
while (mot_valide(plateau_de_jeu,mot,direction,coord_X ,coord_Y)!=1);
}