Projet realisation d'un Pendu

Résolu
Bonjour,
J'ai urgemment besoin de votre aide, je voudrais savoir pourquoi ce programme ne marche pas bien :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>



char lireCaractere()
{
  char caractere = 0;
  caractere = getchar();
  caractere = toupper(caractere);
  while(getchar() != '\n');
  
  return caractere;
}


int rechercherLettre(char lettreSaisie, char motSecret[], int lettreTrouvee[])
{
    int i = 0;
    int bonneLettre = 0;
   for(i = 0; motSecret[i] != '\0'; i++)
   {
       if(lettreSaisie == motSecret[i])
       {
           bonneLettre = 1;
           lettreTrouvee[i] = 1;
       }
       
       return bonneLettre;
   }
   
}

int gagne(int lettreTrouvee[])
{
    int joueurGagne = 1;
    int i = 0;
    for(i = 0; i < 7; i++)
    {
        if(lettreTrouvee[i] == 0)
        joueurGagne = 0;
    }
    
    return joueurGagne;
}

int main()
{
    char motSecret[] = "NOBOSSE";
    int lettreTrouvee[6] = {0};
    int nbCoupsRestants = 10; 
    int i = 0; 
    char lettreSaisie = 0;
    
    printf("\n");  
    printf("Bienvenu au Jeu du PENDU !\n\n");
  
  do
  {
    
    printf("\n\nIl vous reste %d coups a jouer ! ", nbCoupsRestants);
  
    printf("\nQuel est le mot secret ? ");
    
    for(i = 0; i < 7; i++)
    {
      if(lettreTrouvee[i])
      printf("%c", motSecret[i]);
      
      else
      printf("*");
      
    }
    
    printf("\nProposez une lettre ");
    lettreSaisie = lireCaractere();
    
     if(!rechercherLettre(lettreSaisie, motSecret, lettreTrouvee))
    {
      nbCoupsRestants--;
      printf("Cette lettre ne figure pas dans le mot secret \n");
    }
  
    
  }while(nbCoupsRestants > 0 && !gagne(lettreTrouvee));
    
    if(gagne(lettreTrouvee))
    {
       printf("\n\n");
       printf("GAGNE, le mot secret etait bien %s !!!\n\n", motSecret);
       printf("Partie terminee !\n\n");
    }else
    { 
       printf("\n\n");
       printf("PERDU, le mot secret etait %s !!!\n\n", motSecret);
       printf("Partie terminee !\n\n");
    }
    
    
  
    
    return 0;
  
}



2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    Préciser ce qui ne marche pas n'est pas superflu.

    Dans la fonction rechercherLettre(), le return est dans la boucle for() il faudrait le mettre après.
    1. bonjour,

      J'ai corrigé la fonction rechercheLettre(), et ça marche comme sur des roulettes !!!
      Merci beaucoup.