begin process at 2012 05 28 12:12:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

aidez svp


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

aidez svp

samedi 19 avril 2008 à 12:43:21 | aidez svp

bbmmouha

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


samedi 19 avril 2008 à 15:38:26 | Re : aidez svp

jfrancois

Réponse acceptée !

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<iLongueurMot ; ++i)
      motif[i] = (reponse[i] == solution[i]) ? reponse[i] : '*';
   motif[i] = 0; // terminateur
   printf("Lettres a la bonne place .. : %s\n",motif);
}


// ---------------------------
// 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<iLongueurMot ; ++i)
      solution2[i] = (reponse[i] == solution[i]) ? '.' : solution[i];

   for (i=0 ; i<iLongueurMot ; ++i)
   {
      motif[i] = '*';
      if (reponse[i] != solution2[i])
      {
         for (j=0 ; j<iTailleMot ; ++j)
         {
            if (i == j) continue;
            if (reponse[i] == solution2[j])
            {
               motif[i] = reponse[i];
               solution2[j] = '.';
               break;
            }
         }
      }
   }
   motif[i] = 0; // terminateur
   printf("Lettres a la mauvaise place : %s\n",motif);
}


// -------------------
// 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

samedi 19 avril 2008 à 23:25:05 | Re : aidez svp

bbmmouha

merci beaucoup monsieur Jean-François pour cette solution  

C'est très gentil de votre part



Cette discussion est classée dans : mot, char, nb, strcpy, ch2


Répondre à ce message

Sujets en rapport avec ce message

Fatal signal: Segmentation Fault (SDL Parachute Deployed) [ par broks ] Je ne comprends vraiment pas pourkoa ca ne marche pas...C'est surement un probleme au niveau de la fonction saisi puisque je plante lorsque je dois sa problème avec tri de tableau de chaine - Aidez-moi svp [ par jaguar57 ] Bonjour,Je viens demander de l'aide car j'ai un problème de compréhension de la fonction qsort avec un tableau de chaine fourni par un fichier txt.Je Problème d allocation dynamique [ par Beqtb0x ] /*Bonjour a tous, je viens d'arriver sur ce site, je suis étudiant en première année d'informatique et j'ai un problème a un tp que même la prof n'est Probleme dans mon programme password [ par Jarod1980 ] Salut tout le monde,Voilà j'ai un problème dans mon programme de password. Je m'explique: J'ai développé en premier lieu un programme où l'utilisateur exercice d'algo [ par Mjblue ] int chainehsrd( int i; int N; char Mot=''; char Mot[255]; int E=97; char L=(char)E) { for (i=0; i< char Mot[255]-1; i++) arbre lexicographique [ par finoss ] Bonjour,Je dois réalisé pour un projet un arbre lexicographique en C, j'ai réussi à faire le code pour importer les 16000 mots depuis un fichier texte Vecteur de pointeur de char [ par noname001 ] Bonsoir à tous. J'ai un petit soucis avec un vecteur de pointeur de char. Voici premièrement sa déclaration [code=cpp] char *mots_cles[MAX_MOTS_CLES Pointeurs et tableau de char ? [ par phyyl ] Bonjour ! J'ai un petit soucis ... voici mon code: [code=cpp] #include using namespace std; void modify(char* ptr[]); int main() { char mot[]= problème avec une fonction mélanger mot [ par lewan ] bonjour, voilà j'ai écris une fonction me permettant de mélanger un mot!! Dans un premier temps je crée un dictionnaire de mot aléatoire et dans un s


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,822 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales