Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1105 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Programmation du pendu en C niveau débutant

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Programmation du pendu en C niveau débutant

n°1617705
manubestof​plus
Posté le 02-10-2007 à 09:14:40  profilanswer
 

Bonjour !
je développe actuellement un programme en C sur le theme du pendu.

 

je rencontre toutefois un probleme!
Le programme marche impécablement,seulement voila,je ne fais pas de boucle,donc il ne se
relance pas jusqu'a ce que le programme soit fini.
J'ai bien essayé avec une boucle while,mais il m'affiche,apres avoir entré le mot a trouver,deux fois l'implémentation
"entrer la lettre que vous voulez proposer"
Pouvez vous m'éclairer??
Je précise,je débute,donc meme si la rédaction laisse a désirer,soyez indulgents^^ :wahoo:
Merci d'avance!

 

Voila le programme en question:

 


#include<stdio.h>
#include<string.h>
#include<conio.c>

 

#define MAXCAR 10
#define INITIALISATION '-'

 


int main()

 

{
    char               phrase[ MAXCAR ] ;
    char              reponse[ MAXCAR ] ;
    char                            car , car2 ;
    int    nbcar = 0 , i , m = 0, p = 0 , j = 0 , d = 0 ;
   

 

         
     
            textcolor( LIGHTBLUE );                                 /*mise en forme de l'interface*/
            printf( "%c" , 201 ) ;
           
                    for( i = 0 ; i < 78 ; i++ )
                         {                
                                          printf( "%c" , 205 ) ;                
                             }
 
            printf("%c",187);
           
            printf("%c",186);
            textcolor(YELLOW);
         
            printf("                             Pendu - projet 2007                              " );
            textcolor(LIGHTBLUE);
            printf("%c",186);
           
            printf("%c",200);
           
                             for( i = 0 ; i < 78 ; i++ )
                              {                
                             printf( "%c" , 205 ) ;                
                                     }
           
            printf("%c",188);
            textcolor(WHITE);
         
   /*saisir un mot*/
   printf("saisir le mot mysterieux:\n" );
   fgets(phrase, MAXCAR, stdin);

 


   /*initialisation du tableau de réponse*/

 

  nbcar=strlen(phrase);
     for (i=0;i<nbcar-1;i++)
     {
 reponse[i] = INITIALISATION;
 
     }

 

    for (i=0;i<nbcar-1;i++)
     {
 printf("%c",reponse[i]);
     }
 printf("\n" );
   /*creation du test terminal*/

 

    if ((m == strlen(phrase)) || (p == 12))
     {
 if (m == strlen(phrase))
 {
   printf("Gagné,vous avez trouvé le mot mystérieux\n" );
 }
        else
     {
         printf("Perdu,vous êtes pendu!!!\n" );
     }
     }
     else
     {
     
     
       printf("entrez la lettre que vous voulez proposer:\n" );
       car=getchar();
       
       
         for (j=0;j<nbcar-1;j++)
         {
            if (phrase[j]==car)
            {
               reponse[j]=car  ;  
               d++;
               m++;    
            }
           
        }
       if(d == 0)
         {
              printf("la lettre entrée ne fait pas partie du mot\n" );
              p++;  
             
          }
          for (i=0;i<nbcar-1;i++)
     {
 printf("%c",reponse[i]);
     }
   
             }  
                             

  

car2=getchar();

 

  printf("\n" );
car2=getchar();
return 0;

 

}

 


     
     
           
     
     
     
     
     
     
     


Message édité par manubestofplus le 02-10-2007 à 09:16:49
mood
Publicité
Posté le 02-10-2007 à 09:14:40  profilanswer
 

n°1617736
manubestof​plus
Posté le 02-10-2007 à 11:03:06  profilanswer
 

j'ai reussi a transformer ça en boucle,mais un probleme subsiste au niveau du compteur de 'm'
En effet,lorsque la valeur maximale est atteinte,il n'affiche pas le message de victoire,et continue de demander la saisie de lettres.
 
Programme amélioré:
 
#include<stdio.h>
#include<string.h>
#include<conio.c>
#include<conio.h>
 
#define MAXCAR 10
#define INITIALISATION '-'
 
 
int main()
 
{
    char               phrase[ MAXCAR ] ;
    char              reponse[ MAXCAR ] ;
    char                            car , car2 ;
    int    nbcar = 0 , i , m = 0, p = 0 , j = 0 , d = 0 ;
     
 
           
     
            textcolor( LIGHTBLUE );                                 /*mise en forme de l'interface*/
            printf( "%c" , 201 ) ;
             
                    for( i = 0 ; i < 78 ; i++ )
                         {                
                                          printf( "%c" , 205 ) ;                  
                             }
   
            printf("%c",187);
             
            printf("%c",186);
            textcolor(YELLOW);
         
            printf("                             Pendu - projet 2007                              " );
            textcolor(LIGHTBLUE);
            printf("%c",186);
             
            printf("%c",200);
             
                             for( i = 0 ; i < 78 ; i++ )
                              {                
                             printf( "%c" , 205 ) ;                  
                                     }
             
            printf("%c",188);
            textcolor(WHITE);
         
   /*saisir un mot*/
   printf("saisir le mot mysterieux:\n" );
   fgets(phrase, MAXCAR, stdin);
 
   /*vider l'ecran pour cacher la réponse*/
   
   clrscr();
   /*initialisation du tableau de réponse*/
 
   nbcar=strlen(phrase);
     for (i=0;i<nbcar-1;i++)
     {  
 reponse[i] = INITIALISATION;
 
     }
 
     for (i=0;i<nbcar-1;i++)
     {
 printf("%c",reponse[i]);
     }
 printf("\n" );
   /*creation du test terminal*/
 
     while ((m != nbcar) && (p != 6))
     {
      printf("\n" );
     
         printf("entrez la lettre que vous voulez proposer:?\b" );
         car=getchar();
         
         /* vider stdin */
         while (getchar() != '\n')  
         {
         }  
          d=0;
         for (j=0;j<strlen(phrase)-1;j++)
         {
            if (phrase[j]==car)
            {
               reponse[j]=car  ;  
               d++;
               m++;  
               printf("m = %d\n",m);
            }  
           
        }  
        if(d == 0)
        {
            printf("la lettre entrée ne fait pas partie du mot\n" );
            p++;    
             printf("p = %d \n",p);
        }
        for (i=0;i<strlen(phrase)-1;i++)
        {
          printf("%c",reponse[i]);
        }
     
     }  
                       
                   
                   
                                         
  if (m == nbcar)
  {
   printf("Gagné,vous avez trouvé le mot mystérieux\n" );
                   
  }
  else
  {
   printf("Perdu,vous êtes pendu!!!\n" );
  }
     
   
   
 
car2=getchar();
 
   printf("\n" );
car2=getchar();
return 0;
 
}
 
 
     
     
             
     
     
     
     
     
     
     

n°1617797
Emmanuel D​elahaye
C is a sharp tool
Posté le 02-10-2007 à 12:28:14  profilanswer
 

Balises code STP. Il faut lire les règles du forum avant de poster...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Programmation du pendu en C niveau débutant

 

Sujets relatifs
Débutant Python => Passage de paramètreprogrammation pour crypter des données
débutant: trouver une chaîne dans une ligne, en remplacer une autre[Debutant] Plusieurs TABLE l'une en dessous de l'autre
[RESOLU] Débutant VB - Ouvrir une image sous VB6[SECURITE] Testez vos compétences en sécurité dans la programmation...
Programmation d'évenement pour un groupe de label créer dynamiquementDébutant =) -> différence entre cadre et tableau
Programmation 3D : rendu de mer/vaguesAide pour débuter la programmation d un mini jeu
Plus de sujets relatifs à : Programmation du pendu en C niveau débutant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR