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 :

Jeu de pendu


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut Jeu de pendu
    Salut a tout,

    j'ai un probleme avec la realisation du jeu de pendu, voila mon code source

    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
    #include <stdio.h> 
    #include <stdlib.h> 
    #include "pendu.h" 
    #include <ctype.h> 
     
    int main(int argc, char *argv[]) 
    { 
    long i, coups=10; 
    char motSecret[]="MOTSECRET", motCache[]="*********"; 
    char lettreEntree; 
    printf("Jeu de pendu \n"); 
    while(gagne(motSecret, motCache)!=0 && coups>0)// tant que le joueur n'a pas gagner et qu'il lui reste encore des coups 
    { 
    printf("Entrer une lettre:\n"); 
    lettreEntree=lireCaractere(); //on demande au joueur d'entrer une lettre a l'aide de la fonction lireCaractere qui est situee dans pendule.c 
     
    for(i=0; motSecret[i] != '\0'; i++) 
    { 
     
    if(lettreEntree==motSecret[i]) // on compare la lettre entree avec les lettre du mot secret 
    { 
    motCache[i]=lettreEntree; // si elle est identique a l'une des lettre on la revele 
    } 
     
    } 
    printf("%s", motCache); //on affiche le mot cache 
    coups--; 
    printf("Il vous reste %ld coups.\n ", coups ); 
     
    } 
    system("PAUSE"); 
    return 0; 
    }
    pendu.h


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char lireCaractere(); 
    int gagne (char*, char*);


    pendu.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
    char lireCaractere() 
    { 
    char caractere=0; 
     
    caractere = getchar(); 
    caractere = toupper(caractere); 
     
    while (caractere != '\n' ); 
     
     
    return caractere; 
    } 
    int gagne(char motSecret[], char motCache[]) 
    { 
    long i, gagne=0; 
     
    char caractere = -1; 
     
    for(i=0; caractere != '\0'; i++) 
    { 
    caractere = motSecret[i]; 
     
    if(caractere != motCache[i]) 
    { 
    gagne++; 
    } 
     
    } 
     
    return gagne; 
    }

    Je suis sous Visual C++, le programme s'execute mais des que j'entre une lettre il s'arrete je ne sais pas pourquoi???
    Merci d'avance !!
    ------------------------------------------------------------*--------------------
    JiYd@Configuration: Windows Vista
    Internet Explorer 7.0

  2. #2
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    Bonjour,

    ben deja premier truc :
    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
     
    char lireCaractere() 
    { 
    /* ca c'est bloquant, si ton premier carac n' est pas '\n' tu attends */
    /*char caractere=0; 
     
    caractere = getchar(); 
    caractere = toupper(caractere); 
     
     
    while (caractere != '\n' ); */
    /* je ferais plus un truc comme ca : */
    while ( (caractere = getchar() ) != '\n' ) 
    {
        caractere = toupper(caractere); 
    }
     
    return caractere; 
    } 
    int gagne(char motSecret[], char motCache[]) 
    { 
    long i, gagne=0; 
     
    char caractere = -1; 
     
    for(i=0; caractere != '\0'; i++) 
    { 
    caractere = motSecret[i]; 
     
    if(caractere != motCache[i]) 
    { 
    gagne++; 
    } 
     
    } 
     
    return gagne; 
    }

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Tout simplement la ligne suivante est une ligne sans fin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (caractere != '\n' );

  4. #4
    Candidat au Club
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Par défaut
    Merci beaucoup!!!
    j'ai remplacer
    while (caractere != '\n' );
    par
    while (getchar() != '\n' );
    et tout marche maintenant!!

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

Discussions similaires

  1. Code en bourne shell du jeu Le "PENDU"
    Par piment dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 20/07/2007, 14h17
  2. Jeu Bonhomme pendu
    Par yinyann86 dans le forum Delphi
    Réponses: 11
    Dernier message: 14/11/2006, 17h03
  3. Le jeu du pendu.
    Par giggs dans le forum C
    Réponses: 5
    Dernier message: 31/10/2006, 13h40
  4. jeu du pendu
    Par krachik dans le forum Langage
    Réponses: 5
    Dernier message: 24/10/2006, 12h48
  5. Réponses: 4
    Dernier message: 24/03/2006, 13h54

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