IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème d'un jeu type pendu


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut Problème d'un jeu type pendu
    Bonjour a vous tous, et oui c'est encore moi, qui vient embêter les autres.

    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 : 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
    #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 : 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
    #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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Ca veut dire qu'il ne trouve pas le corps de la fonction piocherMot, comment compile-tu ton code? quel compilateur/EDI utilise-tu?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut
    J'utilise CODE::BLOCKS

  4. #4
    Membre chevronné
    Avatar de haraelendil
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2004
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2004
    Messages : 283
    Par défaut
    Hmm, c'est bizare ça, tu as bien dico.c d'inclus dans ton projet, si tu fait un clic-droit dessus, dans build options, il est bien coché en build et en link?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut
    Oui c'est ca justement qui m'embete^^

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 209
    Par défaut
    Par contre, si je coche debug et release en +, mon fichier bug et la je ne sais pas d'ou il vient^^.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de tirets dans un jeu de pendu
    Par bapt44 dans le forum Général Java
    Réponses: 6
    Dernier message: 08/05/2015, 22h44
  2. Jeu du pendu sur console - problème de boucle
    Par Pif_Paf_Pouf dans le forum Débuter
    Réponses: 4
    Dernier message: 13/10/2014, 16h36
  3. Réponses: 2
    Dernier message: 02/11/2009, 15h25
  4. Réponses: 2
    Dernier message: 31/01/2008, 21h41
  5. Jeu du pendu : problème de boucle
    Par hitman_47 dans le forum Pascal
    Réponses: 31
    Dernier message: 03/01/2008, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo