Projet realisation d'un Pendu

Résolu/Fermé
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017 - 20 juin 2016 à 16:28
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 - 26 juin 2016 à 12:01
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

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
20 juin 2016 à 22:19
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.
0
jeandchanel Messages postés 135 Date d'inscription vendredi 10 juin 2016 Statut Membre Dernière intervention 31 mai 2017
Modifié par jeandchanel le 21/06/2016 à 08:26
bonjour,

J'ai corrigé la fonction rechercheLettre(), et ça marche comme sur des roulettes !!!
Merci beaucoup.
0
paly2 Messages postés 254 Date d'inscription vendredi 29 août 2014 Statut Membre Dernière intervention 15 février 2018 25
26 juin 2016 à 12:01
0