mastermind en c++ aussi mais sous dos avec Turbo c++.....

mastermind en c++ aussi mais sous dos avec Turbo c++..... - Programmation

Marsh Posté le 09-06-2001 à 11:14:32    

S'il vous plait pas taper , pas taper.
Je pensais avoir ma réponse avec le post pas loin dessous mais moi je ne fais que de l'initiation et avec Turbo c++
je dois faire :
Réaliser une application qui choisit au hasard une combinaison de 5 chiffres (compris entre 1 et 8) et qui propose à l’utilisateur de découvrir ce « code » secret.
 
A chaque proposition du joueur, le programme précisera :
 
 - Le nombre de chiffres exacts proposés à la bonne place
 - Le nombre de chiffres exacts mais proposés à la mauvaise place.
 
Si le code est découvert, le programme indiquera le nombre de coups tentés ; sinon, après 15 échecs, le programme s’arrêtera et indiquera au joueur la combinaison correcte.

 
Il parait que ça se fait en 10 mn pour un mec qui connais.  
J'achète 10 mn à quelqu'un si om me trouve ça.   :o))
 
Merci d'avance.

Reply

Marsh Posté le 09-06-2001 à 11:14:32   

Reply

Marsh Posté le 09-06-2001 à 11:36:40    

C'est pas comme ça que ça marche sur ce forum.
Dans ton intérêt on ne te répondra que si tu poses des questions précises ou si tu soumets du code à critiquer :p

Reply

Marsh Posté le 09-06-2001 à 12:09:14    

Merci de ton aide
c'est chaleureux de voir que même sur le net les âmes charitables sont là.

Reply

Marsh Posté le 11-06-2001 à 10:42:20    

Tout a fait d'accord. C un exercice de debutant, ca ne sert a rien de le faire faire par un autre, tu ne progresserais pas.
 
P.S. : tel qu'il est presente ca se fait en moins de 10 minutes

Reply

Marsh Posté le 11-06-2001 à 13:48:36    

Merci de ton aide
c'est chaleureux de voir que même sur le net les âmes charitables sont là.

Reply

Marsh Posté le 11-06-2001 à 14:05:36    

:sarcastic:
 
Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.
 
Si ton histoire c'est pour un projet informatique dans ta fac par exemple, et que tu souhaites que quelqu'un fasse le boulot a ta place, tu t'es trompe d'endroit, ici c'est pas la croix rouge.
 
A bon entendeur...

Reply

Marsh Posté le 11-06-2001 à 14:09:12    

Merci de ton aide
c'est chaleureux de voir que même sur le net les âmes charitables sont là.  
 
et hop, -1, portnawak


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 11-06-2001 à 14:16:06    

c'est un bot !

Reply

Marsh Posté le 11-06-2001 à 16:54:09    

[Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.]
 
J'ai 45 ans pauvre ...
Je suis pas à la fac mais à l'usine dans une forge !
Ce truc s'est pour obtenir une 'capacité' pour me servir de l'ordi de la boite.
Je m'en sert depuis 4 ans sans problème mais si tu veux c'est un aytre moyen de licencier les gens.
Je fais de la qaisie sous dos, alors imagine ce que j'ai à foutre avec du c/c++
J'ai pas le temps et l'energie et toi tu m'a fait perdre plus de temps que tu ne le merite.
Adieu
Fasse qu'un jour ta charité se retourne et que si tu veux qu'on te fasse un beau portail en fer forgé, et bien qu'on t'envoye le faire toi même.

 

[edit]--Message édité par PapaOlive--[/edit]

Reply

Marsh Posté le 11-06-2001 à 17:14:00    

PapaOlive a écrit a écrit :

[Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.]
 
J'ai 45 ans pauvre ...
Je suis pas à la fac mais à l'usine dans une forge !
Ce truc s'est pour obtenir une 'capacité' pour me servir de l'ordi de la boite.
Je m'en sert depuis 4 ans sans problème mais si tu veux c'est un aytre moyen de licencier les gens.
Je fais de la qaisie sous dos, alors imagine ce que j'ai à foutre avec du c/c++
J'ai pas le temps et l'energie et toi tu m'a fait perdre plus de temps que tu ne le merite.
Adieu
Fasse qu'un jour ta charité se retourne et que si tu veux qu'on te fasse un beau portail en fer forgé, et bien qu'on t'envoye le faire toi même.




T'énerves pas! Le truc, c'est qu'ils ont beaucoup l'habitude de voir des étudiants de fac qui trouvent plus facile de demander une réponse toute faite à leur exos plutôt que de se creuser un peu... Et ils n'ont pas tort... Ce n'est pas leur rendre service que de leur faire leurs exos...
Maintenant, qu'est-ce-que tu veux exactement, un algo ou du code?

Reply

Marsh Posté le 11-06-2001 à 17:14:00   

Reply

Marsh Posté le 11-06-2001 à 18:35:34    

PapaOlive a écrit a écrit :

[Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.]
 
J'ai 45 ans pauvre ...
Je suis pas à la fac mais à l'usine dans une forge !
Ce truc s'est pour obtenir une 'capacité' pour me servir de l'ordi de la boite.
Je m'en sert depuis 4 ans sans problème mais si tu veux c'est un aytre moyen de licencier les gens.
Je fais de la qaisie sous dos, alors imagine ce que j'ai à foutre avec du c/c++
J'ai pas le temps et l'energie et toi tu m'a fait perdre plus de temps que tu ne le merite.
Adieu
Fasse qu'un jour ta charité se retourne et que si tu veux qu'on te fasse un beau portail en fer forgé, et bien qu'on t'envoye le faire toi même.
 
 




 
Ah bah voila ce que je voulais entendre... c'est quand meme pas si difficile d'expliquer les choses non ? :)
Desole si j'ai ete un peu dur dans mon message precedent, mais c'est juste le ton de tes reponses que je n'aimais pas du tout. Maintenant si tu ne veux plus me parler, libre a toi, mais sache que je suis tout a fait pret a t'aider :hello:

Reply

Marsh Posté le 11-06-2001 à 19:24:56    

Je propose ça...
PapaOlive, pour toutes questions, je suis à ta disposition...
Pour les vieux de la vieille, j'attends vos remarques et critiques (constructives uniquement!)... Vous noterez que j'ai fait ça en partant du principe que ça n'était pas censé être fait par un as de la bidouille en C, donc pas d'exotisme du genre:

Code :
  1. char c = '7'; int valChr = (int)(c-48);


 

Code :
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define NOMBREDESSAISMAXI 12
  4. // Fonction retournant le caractère correspondant au chiffre n (5 => '5')...
  5. char Caractere(int n)
  6. {
  7.   char resultat;
  8.   switch(n)
  9.   {
  10.     case 1: resultat = '1';
  11.             break;
  12.     case 2: resultat = '2';
  13.             break;
  14.     case 3: resultat = '3';
  15.             break;
  16.     case 4: resultat = '4';
  17.             break;
  18.     case 5: resultat = '5';
  19.             break;
  20.     case 6: resultat = '6';
  21.             break;
  22.     case 7: resultat = '7';
  23.             break;
  24.     case 8: resultat = '8';
  25.             break;
  26.   }
  27.   return resultat;
  28. }
  29. // Fonction retournant le chiffre correspondant au caractère c ('5' => 5)...
  30. int Chiffre(char c)
  31. {
  32.   int resultat;
  33.   switch(c)
  34.   {
  35.     case '1': resultat = 1;
  36.             break;
  37.     case '2': resultat = 2;
  38.             break;
  39.     case '3': resultat = 3;
  40.             break;
  41.     case '4': resultat = 4;
  42.             break;
  43.     case '5': resultat = 5;
  44.             break;
  45.     case '6': resultat = 6;
  46.             break;
  47.     case '7': resultat = 7;
  48.             break;
  49.     case '8': resultat = 8;
  50.             break;
  51.   }
  52.   return resultat;
  53. }
  54. // Fonction principale...
  55. main()
  56. {
  57.   char Combinaison[5];  // Pour stocker la combinaison à trouver...
  58.   char Proposition[5];  // Pour stocker la proposition du joueur...
  59.   int CompteurCombinaison[8];  // Pour compter le nombre d'occurences de chaque chiffre de la combinaison à trouver...
  60.   int CompteurProposition[8];  // Idem pour la proposition du joueur...
  61.   int NbrEssais = 0;
  62.   int NbrTrouves = 0,NbrPlaces = 0,NbrMalPlaces = 0;
  63.   int i;  // Incrément...
  64.   // Ces trois lignes sont à revoir si le compilo connaît les BOOL...
  65.   int CombinaisonValide;
  66.   const int true = 1;
  67.   const int false = 0;
  68.   // On tire la combinaison à trouver au hasard...
  69.   for(i=0;i<5;i++)
  70.     Combinaison[i]=Caractere(1+(rand()%8));
  71.   // On compte les occurences de chaque caractères de la combinaison secrète...
  72.   for(i=0;i<8;i++)
  73.     CompteurCombinaison[i]=0;
  74.   for(i=0;i<5;i++)
  75.     CompteurCombinaison[Chiffre(Combinaison[i])-1]++;
  76.   // On entre dans la boucle du jeu... On en sort si on a gané ou si l'on a dépassé le nombre d'essais autorisés...
  77.   while((NbrPlaces<5)&&(NbrEssais<NOMBREDESSAISMAXI))
  78.     {
  79.       printf("\nEntrez votre %d proposition:\n",NbrEssais+1);
  80.       scanf("%s",Proposition);
  81.       // Vérification de la validité de la proposition...
  82.       CombinaisonValide = true;
  83.       for(i=0;i<5;i++)
  84.         if((Proposition[i]>'8') || (Proposition[i]<'1'))
  85.           CombinaisonValide = false;
  86.       // Si la combinaison est valide...
  87.       if(CombinaisonValide)
  88.         {
  89.           // On compte le nombre de bien placés...
  90.           NbrPlaces = 0;
  91.           for(i=0;i<5;i++)
  92.             if(Combinaison[i] == Proposition[i])
  93.               NbrPlaces++;
  94.           // On compte les occurences de chaque caractères de la proposition...
  95.           for(i=0;i<8;i++)
  96.             CompteurProposition[i] = 0;
  97.           for(i=0;i<5;i++)
  98.             CompteurProposition[Chiffre(Proposition[i])-1]++;
  99.           // On compte le total de caractères trouvés...
  100.           NbrTrouves = 0;
  101.           for(i=0;i<8;i++)
  102.             if((CompteurProposition[i]!=0) && (CompteurCombinaison[i]!=0))
  103.               if(CompteurProposition[i]<CompteurCombinaison[i])
  104.                 NbrTrouves += CompteurProposition[i];
  105.               else
  106.                 NbrTrouves += CompteurCombinaison[i];
  107.           // On en déduit le nombre de mal placés...
  108.           NbrMalPlaces = NbrTrouves - NbrPlaces;
  109.           // On affiche le résultat...
  110.           printf("Bien placés: %d\nMal placés: %d",NbrPlaces,NbrMalPlaces);
  111.           NbrEssais++;
  112.         }
  113.       else
  114.         printf("Proposition invalide: proposez une combinaison de 5 chiffres compris entre 1 et 8.\n" );
  115.     }
  116.     if(NbrPlaces==5)
  117.       printf("\nGagné!\n" );
  118.     else
  119.       printf("\nPerdu!\n" );
  120. }

Reply

Marsh Posté le 11-06-2001 à 19:35:18    

Et puis merde, voici une version qui fonctionne normalement
 

Code :
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. void main()
  5. {
  6.   int nb_essais=0, correct=0, malplace;
  7.   int correct=0, malplace=0;
  8.   int entree[5], code[5], tmpcode[5];
  9.  
  10.   srand(time(0));
  11.   for (int i=0; i<5; i++)
  12.     code[i]= rand()%8;
  13.  
  14.   while ((nb_essais < 15) && (correct != 5))
  15.     {
  16.       nb_essais++;
  17.       for (int i=0; i<5; i++)
  18.         tmpcode[i]= code[i];
  19.      
  20.       cout << "Entrez votre proposition (5 chiffres): " << flush;
  21.       cin >> essai;
  22.      
  23.       for (int i=4; i>=0; i--)
  24.       {
  25.         entree[i]= essai % 10;
  26.         essai /= 10;
  27.       }
  28.      
  29.       correct=0;
  30.       for (int i=0; i<5; i++)
  31.         if (entree[i]==tmpcode[i])
  32.         {
  33.           correct++;
  34.           entree[i]=-1;
  35.           tmpcode[i]= -2;
  36.         }
  37.      
  38.       malplace=0;
  39.       for (int i=0; i<5; i++)
  40.         for (int j=0; j<5; j++)
  41.           if ((j != i) && (entree[i]==tmpcode[j]))
  42.           {
  43.             malplace++;
  44.             entree[i]= -1;
  45.             tmpcode[j]= -2;
  46.             break;
  47.           }
  48.      
  49.       cout << "Vous avez " << correct << " chiffres bien place(s), " << malplace << " mal place(s)" << endl;
  50.     }
  51.  
  52.   if (correct != 5)
  53.     {
  54.       cout << "Plus de 15 essais, vous avez perdu. Le code etait ";
  55.       for (int i=0; i<5; i++)
  56.         cout << code[i];
  57.       cout << endl;
  58.     }
  59.   else
  60.     cout << "Gagne ! Nb d'essais : " << nb_essais << endl;
  61. }
 

[edit]--Message édité par tgrx--[/edit]

Reply

Marsh Posté le 11-06-2001 à 19:35:47    

toucouch> mince, je me suis fait griller :)

 

[edit]--Message édité par tgrx--[/edit]

Reply

Marsh Posté le 11-06-2001 à 19:47:05    

tgrx a écrit a écrit :

toucouch> mince, je me suis fait griller :)




Pas grave... Ca permet de voir le problème traité de +ieurs façon... Par contre, tu ne t'es pas arraché sur les commentaires! :D

Reply

Marsh Posté le 11-06-2001 à 19:50:17    

toucouch> exact ;) mais je ne pense pas non plus qu'ils vont le forcer a faire une soutenance orale... et puis je suis dispose a repondre a toutes les questions :benetton:

Reply

Marsh Posté le 11-06-2001 à 23:39:58    

he bien merci et pardon de m'être énervé.
Comme quoi chaque milieu à ses codes

Reply

Marsh Posté le 12-06-2001 à 10:56:47    

PapaOlive a écrit a écrit :

he bien merci et pardon de m'être énervé.
Comme quoi chaque milieu à ses codes




Y a pas de mal! :) Et si tu as des questions n'hésite surtout pas!

Reply

Marsh Posté le 12-06-2001 à 11:00:19    

Ah mince y a une faute dans mon prog, il prend en compte les chiffres de 0 a 7, et non pas de 1 a 8... minche.
 
Remplacer la ligne

Code :
  1. code[i]= rand()%8;


 
par  

Code :
  1. code[i]= rand()%8+1;


 
oups... :sweat:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed