Aidez svp

Résolu
Signaler
Messages postés
2
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
19 avril 2008
-
Messages postés
2
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
19 avril 2008
-
jesuis un debutant en c++ et je doit fair un projet de motus et j ai fait ce travail mais il y a un probleme que j ai pas arrivé a le comprendre voila mon travail :
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
void enplace(char mot[22][8],int nb,char ch[8],char ch2[8])
{int i,j;
j= 0;
for (i=0;i<=7;i++)
{if(ch[i]== mot[nb][j])
ch2[j]= ch[i];

else
ch2[j]='*';
j++;}

printf(" les lettres qui sont en places sont  ");
puts (ch2);
}
void nenplace (char mot[22][8],int nb,char ch[8],char ch2[8])
{int i,j;char ch4[8];char ch3[8];
for (i=0;i<=7;i++)
 {for (j=0;j<=7;j++)
  if(ch[i]== mot[nb][j] && ch[i]!=ch2[j] && ch[i]!=ch3[j])// le probleme est ici
   {ch3[j] =mot[nb][j];
    ch4[i]= ch[i];}
  else
   ch4[i]='*';} //
printf("Les lettres qui ne sont pas à leurs places sont ");
puts(ch4);
}

main()
{char mot[22][8];char ch[8];int sr =0;char ch2[8];
srand(time(0));
void enplace(char mot[22][8],int nb,char ch[8],char ch2[8]);
void nenplace(char mot[22][8],int nb,char ch[8],char ch2[8]);
int i=0,nb;
strcpy (mot[0],"intence");
strcpy (mot[1],"taxable");
strcpy (mot[2],"accueil");
strcpy (mot[3],"acheter");
strcpy (mot[4],"acompte");
strcpy (mot[5],"activer");
strcpy (mot[6],"agjuger");
strcpy (mot[7],"adresse");
strcpy (mot[8],"affaire");
strcpy (mot[9],"aimable");
strcpy (mot[10],"ajuster");
strcpy (mot[11],"alliage");
strcpy (mot[12],"amazone");
strcpy (mot[13],"analyse");
strcpy (mot[14],"animale");
strcpy (mot[15],"armures");
strcpy (mot[16],"barrage");
strcpy (mot[17],"binaire");
strcpy (mot[18],"boitier");
strcpy (mot[19],"bonheur");
strcpy (mot[20],"boucler");
strcpy (mot[21],"bowling");
strcpy (mot[22],"calibre");
nb= int(rand()%21)+1;
puts(mot[nb]);
printf("\t bien venu dans votre jeu motus \n");
printf("entrer un mot qui commence par: \n");
printf("%c \n",mot[nb][0]);
do{
gets(ch);
if(strcmp(mot[nb],ch)==0)
{printf("vous avez trouve le bon mot felicitation");
sr =1;}
else
{enplace(mot,nb,ch,ch2);
nenplace(mot,nb,ch,ch2);}
i++;
}while(sr==0 && i>7);
getch();}
et merci d'avance

2 réponses

Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
1
Bonjour,

Voilà une solution qui marche pas mal, a priori, et un peu mieux structurée !

#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>




// --- Longueur et taille d'un mot
static const int iLongueurMot = 7;
static const int iTailleMot   = iLongueurMot + 1;




// --- Prototypes des fonctions
void LettresBonnePlace(const char*,const char*);
void LettresMauvaisePlace(const char*,const char*);






// ------------------------
// Lettres à la bonne place
// ------------------------
void LettresBonnePlace
(
    const char* solution // E:mot à trouver
   ,const char* reponse  // E:reponse proposée
)
{
   char motif[iTailleMot];
   int  i;



   for (i=0 ; i






// ---------------------------
// Lettres à la mauvaise place
// ---------------------------
void LettresMauvaisePlace
(
    const char* solution // E:mot à trouver
   ,const char* reponse  // E:reponse proposée
)
{
   char motif[iTailleMot];
   int  i,j;




   // --- Copie de la solution sans les lettres bien placées
   char solution2[iTailleMot];
   for (i=0 ; i



   for (i=0 ; i






// -------------------
// Fonction principale
// -------------------
int main(void)
{
   const int iNombreMot = 23;
   char mot[iNombreMot][iTailleMot] =
   {
       "intense" // à la place de "intence"
      ,"taxable"
      ,"accueil"
      ,"acheter"
      ,"acompte"
      ,"activer"
      ,"adjuger" // à la place de "agjuger"
      ,"adresse"
      ,"affaire"
      ,"aimable"
      ,"ajuster"
      ,"alliage"
      ,"amazone"
      ,"analyse"
      ,"animale"
      ,"armures"
      ,"barrage"
      ,"binaire"
      ,"boîtier" // à la place de "boitier"
      ,"bonheur"
      ,"boucler"
      ,"bowling"
      ,"calibre"
   };



   char reponse[iTailleMot];
   int  nb_reponse = 0;
   int  indice_mot;




   // --- Tirer au sort le mot à trouver
   srand(time(0));
   indice_mot = int(rand() % iNombreMot);
   printf("(mot a trouver : %s)\n\n",mot[indice_mot]);




   // --- Jeu
   printf("Bienvenu dans votre jeu MOTUS\n");
   printf("Entrer un mot de %d lettres qui commence par : %c \n"
         ,iLongueurMot,mot[indice_mot][0]);
   while (true)
   {
      while (true)
      {
         printf("\nReponse proposee %d/%d ...... : ",nb_reponse + 1,iLongueurMot);
         gets(reponse);
         if (strlen(reponse) == iLongueurMot) break;
         printf("!!! Mot de %d lettres SVP, recommencer\n",iLongueurMot);
      }
      if (stricmp(mot[indice_mot],reponse) == 0)
      {
         printf("\n*** FELICITATION, vous avez trouve le bon mot ***\n");
         break;
      }
      LettresBonnePlace(mot[indice_mot],reponse);
      LettresMauvaisePlace(mot[indice_mot],reponse);



      ++nb_reponse;
      if (nb_reponse == iLongueurMot)
      {
         printf("\n!!! Vous avez atteint le nombre de reponses autorisees\n");
         break;
      }
   }




   // --- Quitter
   printf("\nAppuyer sur une touche ");
   getch();
   printf("\n");
   return EXIT_SUCCESS;
}


ce qui donne :

(mot a trouver : amazone)



Bienvenu dans votre jeu MOTUS
Entrer un mot de 7 lettres qui commence par : a



Reponse proposee 1/7 ...... : anatol
!!! Mot de 7 lettres SVP, recommencer



Reponse proposee 1/7 ...... : anatole
Lettres a la bonne place .. : a*a*o*e
Lettres a la mauvaise place : *n*****



Reponse proposee 2/7 ...... : anatone
Lettres a la bonne place .. : a*a*one
Lettres a la mauvaise place : *******



Reponse proposee 3/7 ...... : azamone
Lettres a la bonne place .. : a*a*one
Lettres a la mauvaise place : *z*m***



Reponse proposee 4/7 ...... : amazone



*** FELICITATION, vous avez trouve le bon mot ***



Appuyer sur une touche




Jean-François
Messages postés
2
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
19 avril 2008

merci beaucoup monsieur Jean-François pour cette solution  
C’est très gentil de votre part