Problème d'un jeu type pendu
Bonjour a vous tous, et oui c'est encore moi, qui vient embêter les autres.:mouarf:
J'ai creer un mini jeu en C avec l'aide des cours de C, mais vu qu'apparemment personne ne connait la réponse, je viens ici.
Mon jeu est constitué de 4 fichiers : un fichier main.c(NON? JURE?), un fichier dico.c et un autre dico.h et un fichier qui est censé être lut du nom de dico.dictionnaire, seulement voilà, dans mon main il m'affiche une erreur avant un if que je ne comprends pas : undifined reference to '_PiocherMot'
Voila mon fichier dico.c
Code:
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
| #include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include "dico.h"
int piocherMot(char *motPioche)
{
FILE *dico = NULL;
int nombreMots = 0;
int numMotChoisis = 0;
int i;
int caractereLu = 0;
dico = fopen("dico.dictionnaire", "r");
if(dico == NULL)
return 0;
do
{
caractereLu = fgetc(dico);
if(caractereLu == '\n')
nombreMots++;
}while(caractereLu == EOF);
numMotChoisis = nombreAlea(nombreMots);
rewind(dico);
while(numMotChoisis > 0)
{
caractereLu = fgetc(dico);
if (caractereLu == '\n')
numMotChoisis--;
}
fgets(motPioche, 100, dico);
motPioche[strlen(motPioche)-1] = '\0';
fclose(dico);
return 1;
}
int nombreAlea(int nombreMax)
{
srand(time(NULL));
return (rand() % nombreMax);
} |
Le main.c
Code:
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
| #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "dico.h"
int caractereVrai(char mot[], char lettreEntre[], int lettreTrouver[], int tailleMot)
{
int i;
int bonneLettre = 0;
for(i=0; i<tailleMot; i++)
{
if(lettreEntre[0] == mot[i])
{
bonneLettre = 1;
lettreTrouver[i] = 1;
}
else if(lettreEntre[0] != mot[i] && lettreTrouver[i] == 0)
lettreTrouver[i] = 0;
}
return bonneLettre;
}
int gagne(int tableau[], int tailleMot)
{
int joueurGagne = 1;
int i;
for(i=0; i<tailleMot; i++)
{
if(tableau[i] == 0)
joueurGagne = 0;
}
return joueurGagne;
}
int main()
{
char mot[100] = {0};
char lettreEntre[2] = "";
int coupsRestants = 10;
int i;
int *lettreTrouver = NULL;
int bonnelettre = 0;
int gagner = 0;
int tailleMot = 0;
if(!piocherMot(mot))//Erreur ICI
exit(0);
tailleMot = strlen(mot);
lettreTrouver = malloc(tailleMot * sizeof(int));
if (lettreTrouver == NULL)
exit(0);
while(coupsRestants > 0 && gagner == 0)
{
printf("Il vous reste %d coups\n\n", coupsRestants);
printf("Les lettres trouver sont: \n\n");
for(i=0; i<tailleMot; i++)
{
if(lettreTrouver[i] == 1)
{
printf("%c", mot[i]);
}
else
{
printf("*");
}
}
printf("\n\nVeuillez entrez une lettre\n");
scanf("%s", lettreEntre);
bonnelettre = caractereVrai(mot, lettreEntre, lettreTrouver, tailleMot);
if(bonnelettre == 0)
coupsRestants--;
gagner = gagne(lettreTrouver, tailleMot);
}
if(gagner == 1)
printf("\n\nBravo, vous avez trouver le mot mystere qui etait le (%s)", mot);
else
printf("\n\nTu es mort et tu n'as pas trouver le mot mystere qui etait le (%s)", mot);
return 0;
} |
Et enfin le dico.h ou se trouve les prototypes de mes fonctions
Code:
1 2 3 4 5 6 7 8
| #ifndef DICO_H_INCLUDED
#define DICO_H_INCLUDED
int piocherMot(char *motPioche);
int nombreAlea(int nombreMax);
#endif // DICO_H_INCLUDED |
Cordialement Qnope